Substitute duo Milan Skoda and Tomas Necid earned Pavel Vrba's men an unlikely draw after Croatia looked set to clinch a last-16 berth.
Czech Republic's Tomas Necid scored a last-gasp equaliser with a penalty as they drew 2-2 with Croatia in a dramatic Euro 2016 clash that was interrupted for several minutes after flares were thrown on the pitch on Friday.
Substitute Necid converted from the spot after the Czechs had trailed 2-0 and looked to be heading towards their second defeat in Group D, while Croatia were on track for a last 16 spot after Ivan Perisic and Ivan Rakitic scored in either half.
But a fine 76th minute glancing header from substitute Milan Skoda put the Czechs back in the game before the trouble broke out as flares rained down and Croatia fans fought each other.
After the mayhem, a handball by Croatia's Domagoj Vida left Necid to coolly put away his spot kick to level the scores.
The Croats, on four points from two matches, have only themselves to blame after a largely one-sided encounter, although they appeared distracted by the trouble at the end.
The Czechs earned their first point to stay alive.
European champions Spain, who beat the Czechs 1-0 in their first game, face Turkey in Group D later on Friday, with their opponents having lost 1-0 to Croatia in their opener.
Pavel Vrba's Czech team were unable to break free from constant pressure for most of the match, dropping deep as the Croats, with captain Darijo Srna in the lineup after his father's funeral, immediately taking control.
Srna, in tears when the national anthem played, managed to get his emotions under control as he orchestrated his side's tactics which stifled the Czechs for most of the game.
Vrba had made two changes from the team that lost to Spain, bringing in forward David Lafata who was however nowhere to be seen as they failed to get a shot on target for over 50 minutes.
Croatia came close to a goal early on when striker Mario Mandzukic floated in a cross from the left with Perisic just failing to connect in front of goal.
Perisic quickly made amends for his earlier miss, pouncing on yet another Czech error in midfield and beating goalkeeper Petr Cech with a well-placed low drive into the far corner.
Croatia, promised beers by coach Ante Cacic if they won, kept up the pressure and were soon rewarded again with Ivan Rakitic slipping into the box and timing his chip perfectly to beat Cech.
However, instead of finishing off the game with several more good chances, they allowed the Czechs to stage a comeback.
Skoda's header gave them a glimmer of hope before the game was interrupted as flares and other objects landed on the pitch behind the riot police deployed in front of the Croatia fans.
This was followed by fighting amongst the Croatia supporters as referee Mark Clattenburg took the players towards the centre of the pitch and consulted a UEFA official.
After the trouble, Croatia seemed to lose concentration and conceded the penalty which Necid kept his cool to convert for the equaliser that keeps his team's qualification hopes alive.