Cameroon took the lead through Jean-Charles Castelletto but Strahinja Pavlovic and Sergej Milinkovic-Savic replied to give Serbia a half-time advantage.
Aleksandar Mitrovic added a third for Serbia and they looked to be cruising to a win that would have put them in a strong position to progress from the group.
However the Indomitable Lions roared back thanks to Vincent Aboubakar's superb lob and Eric Maxim Choupo-Moting's equaliser three minutes later.
Mitrovic had a chance to regain the lead for his side but the Fulham striker curled a shot wide in the closing moments after being teed up by Dusan Tadic.
Both sides lost their opening match so this result leaves them two points adrift of second-placed Switzerland, who lost 1-0 to group leaders Brazil later on Monday.
Both Serbia and Cameroon need to win their final games, against Switzerland and Brazil respectively, to keep alive their qualification hopes.
In arguably the tournament's most entertaining game so far, Serbia started brightly and Mitrovic twice went close to giving his side the lead.
He hit the post before flashing a shot wide after the ball fell kindly to him in the box as Serbia made all the early running.
However Cameroon took the lead against the run of play when Nicolas N'Koulou flicked on a corner and Castelletto tapped his first international goal home from close range.
Serbia did not panic, though, and turned the game on its head in first-half stoppage time.
Pavlovic headed Serbia's first World Cup goal in 335 minutes of play before Milinkovic-Savic beat Cameroon keeper Devis Epassy with a low drive.
When Mitrovic finished off a brilliant Serbia passing move to give them a two-goal cushion, Dragan Stojkovic's side looked to be heading for a comfortable victory.
However, substitute Aboubakar gave Cameroon hope when he raced clear and, perhaps thinking he was offside, cut inside past a defender and casually scooped the ball over Vanja Milinkovic-Savic for one of the tournament's best goals.
Three minutes later the striker again beat the offside trap but this time squared the ball for ex-Stoke City striker Choupo-Moting to level from close range.
While Cameroon looked dangerous when they pushed for a winner, it was Mitrovic who had the best chance to snatch the victory, but he curled wide as Serbia were left to rue their inability to close out the match.
A defeat would have left Cameroon relying on Switzerland to beat Brazil in order to avoid elimination with a match to spare.
Instead Rigobert Song's side retain hope of getting out of the group stage for the first time since 1990, albeit their final game will be a difficult match against Brazil.
-- Courtesy of BBC Sport