Italy totally dominated the first period and went in at the break a goal to the good through a sumptuous Andrea Pirlo free-kick. But a defensive error allowed Mario Mandzukic to equalise in the final 20 minutes and keep Croatia at the top of the group on four points.
Italy will now need to beat Ireland in their final group game and hope that the result in Croatia's game against Spain is kind to them if they are to progress.
The first half was one-way traffic and the Azzurri deserved more than the single goal they registered. Having been such a disappointment against Spain, Mario Balotelli seemed more awake here and shot wide after a neat turn on three minutes, making the most of limited space in the box.
Claudio Marchisio rifled a shot over the bar while a Balotelli shot from the edge of the area was punched clear by goalkeeper Stipe Pletikosa.
Croatia were struggling to create anything of note but Nikica Jelavic was a shoelace away from turning in Darijo Srna's cross at the near post. Italy coach Cesare Prandelli had asked his team to get in behind the defence and Antonio Cassano did exactly that to meet Leonardo Bonucci's flick over the top but he screwed his effort wide.