The Italians let a first-half lead slip away and now may need help to advance to the European Championship quarterfinals.
Andrea Pirlo gave the Italians the lead with a curving free kick in the 39th minute, but Mario Mandzukic was left unmarked to equalize for Croatia in the 72nd.
At the start of the second half, Italy rarely threatened, instead choosing to absorb Croatia's attacks. The tactic backfired when Ivan Strinic launched a long pass from the left flank to Mandzukic, who had time to control at the edge of the box and shoot in off the post.
Italy coach Cesare Prandelli was left wondering if there was a physical problem with his squad.
"After an hour our physical level drops," Prandelli said. "We've got to figure out how to manage our energy in the next match. We're lacking freshness in that phase of the match.
"We (drew) with a very physical and athletic squad, but we played much better (than Croatia)."
Italy had numerous other first-half chances from Mario Balotelli, Claudio Marchisio and Antonio Cassano, but the Azzurri lacked finishing quality. Balotelli, in particular, appeared hesitant and missed one opportunity after another. And this time, second-half replacement Antonio Di Natale never really had a chance to score.
"If you can't finish it off, of course you're going to have regrets," said Prandelli, who will likely be questioned for sticking with Balotelli up front.
Having opened with a 3-1 win over Ireland, Croatia has four points and is tied for the Group C lead with Spain. Italy, which opened by drawing 1-1 with Spain, has two points and Ireland has already been eliminated with none.
Spain beat Ireland 4-0 in the other group match Thursday.
"Probably the whole country was not expecting this," Croatia coach Slaven Bilic said. "We have a really good chance of going through."
In the final round of group matches on Monday, Italy faces Ireland and Croatia meets world champion Spain. Italy is in a similar position to Euro 2004, when it won its final group match after two draws but was eliminated after Denmark and Sweden drew 2-2. That was the first time a team was eliminated from the group phase without losing.
"I am still convinced we can go through, but we have certainly wasted an opportunity here," Prandelli said.
For his goal, Pirlo placed the ball over Croatia's three-man wall and just inside the near post. Croatia goalkeeper Stipe Pletikosa could only get a weak hand on it once the ball was already inside his net.
"I'm happy for the goal but it's a shame for the team performance, because we could have won the game," Pirlo said. "We had chances to finish the game off in the first half but couldn't put the ball in the back of the net."
Italy remains winless against its Mediterranean neighbour in all six meetings since Croatia declared independence from the former Yugoslavia in 1991. The Azzurri are also now winless in their second matches at their last six major tournaments.
Before the match, Croatian fans burned a European Union flag and paraded around Poznan's main old town square with posters of a convicted war criminal. Police, some in riot gear, monitored the situation, but did not intervene.
Already being investigated for fan behaviour in the first match, Croatian supporters again threw flares on the field several times in the second half. After Croatia scored, the smoke was so intense that Italy goalkeeper Gianluigi Buffon complained he couldn't see and the match was briefly suspended.
On a damp and cool evening at the Municipal Stadium in Poznan, Croatian fans outfitted like their red-and-white checkered flag vastly outnumbered Italian supporters.
Italy: Gianluigi Buffon, Giorgio Chiellini, Daniele De Rossi, Leonardo Bonucci, Emanuele Giaccherini, Claudio Marchisio, Andrea Pirlo, Thiago Motta (Riccardo Montolivo, 62), Christian Maggio, Antonio Cassano (Sebastian Giovinco, 83), Mario Balotelli (Antonio Di Natale, 69).
Croatia: Stipe Pletikosa, Darijo Srna, Vedran Corluka, Gordon Schildenfeld, Ivan Strinic, Ivan Rakitic, Ognjen Vukojevic, Luka Modric, Ivan Perisic (Danijel Pranjic, 68), Nikica Jelavic (Eduardo, 83), Mario Mandzukic (Niko Kranjcar, 90).