- Marcelo Brozovic (86')
The result left the Croatians second in the group on 10 points from five games, behind Russia on goal difference and three ahead of third-placed Slovenia.
Earlier on Saturday, Russia won 2-0 in Cyprus while Slovenia beat Malta 1-0 at home. Fourth-placed Slovakia have six points while Malta and Cyprus have four each.
Croatia missed several key players including injured captain Luka Modric who has been sidelined with a muscle injury and his absence made their midfield look disjointed and bereft of ideas.
Slovakia replied with Vladimir Weiss firing just wide from long range and Robert Mak was then denied by a fine save from Croatia's stand-in goalkeeper Ivica Ivusic, who made his debut replacing the injured Dominik Livakovic.
Croatia coach Zlatko Dalic introduced Ivan Perisic shortly after the break but Slovakia looked more likely to grab the winner as Robert Bozenik spurned a sitter on the hour when he scuffed his shot across the face of goal.
With time running out, 2018 World Cup runners-up Croatia struck out of the blue as Juraj Kucka failed to clear a cross and Brozovic rifled a sumptuous volley into the bottom corner past home keeper Marek Rodak.
Ivusic then pulled off another fine save to keep Croatia in the driving seat as the home side threw men forward in search of an equaliser.
Croatia are at home to Slovenia in their next match, Slovakia entertain Cyprus and Russia host Malta on Tuesday.