Cameroon kept their hopes of reaching the World Cup last 16 alive as they battled back from two goals down to draw a six-goal thriller with Serbia in Group G.
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 Brazil and Switzerland, who meet later on Monday (16:00 GMT).
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, who was playing after Andre Onana was dropped for disciplinary reasons, 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.
Player of the match
AboubakarVincent Aboubakar
Cameroon
Squad number10Player nameAboubakar
Squad number20Player nameMbeumo
Squad number11Player nameBassogog
Squad number15Player nameKunde
Squad number7Player nameNkoudou
Squad number13Player nameChoupo-Moting
Squad number14Player nameOum Gouet
Squad number18Player nameHongla
Squad number12Player nameToko-Ekambi
Squad number21Player nameCastelletto
Squad number5Player nameOndoua
Squad number25Player nameTolo
Squad number3Player nameNkoulou
Squad number19Player nameCollins Fai
Squad number8Player nameAnguissa
Squad number16Player nameEpassy
Serbia
Squad number20Player nameS Milinkovic-Savic
Squad number9Player nameMitrovic
Squad number10Player nameTadic
Squad number23Player nameV Milinkovic-Savic
Squad number2Player namePavlovic
Squad number17Player nameKostic
Squad number14Player nameZivkovic
Squad number16Player nameLukic
Squad number6Player nameMaksimovic
Squad number4Player nameMilenkovic
Squad number5Player nameVeljkovic
Squad number21Player nameDjuricic
Squad number13Player nameMitrovic
Squad number26Player nameGrujic
Squad number7Player nameRadonjic
Squad number15Player nameBabic
Line-ups
Cameroon
Formation 4-3-3
16Epassy
19Fai Collins21Castelletto3Nkoulou25Tolo
8Anguissa18Hongla15Kunde
20Mbeumo13Choupo-Moting12Toko-Ekambi
16Epassy19Fai Collins21Castelletto3NkoulouBooked at 24mins25Tolo8AnguissaSubstituted forOum Gouetat 81'minutes18HonglaSubstituted forAboubakarat 55'minutes15KundeSubstituted forOndouaat 67'minutes20MbeumoSubstituted forNkoudouat 81'minutes13Choupo-Moting12Toko-EkambiSubstituted forBassogogat 67'minutesBooked at 30minsSubstitutes
1Ngapandouetnbu2Ngom Mbekeli4Wooh5Ondoua6Ngamaleu7Nkoudou9Nsame10Aboubakar11Bassogog14Oum Gouet17Mbaizo22Ntcham24Ebosse26MarouSerbia
Formation 3-4-2-1
23V Milinkovic-Savic
4Milenkovic5Veljkovic2Pavlovic
14Zivkovic6Maksimovic16Lukic17Kostic
10Tadic20S Milinkovic-Savic
9Mitrovic
23V Milinkovic-Savic4MilenkovicBooked at 90mins5VeljkovicSubstituted forBabicat 78'minutes2PavlovicSubstituted forMitrovicat 56'minutes14ZivkovicSubstituted forRadonjicat 78'minutes6Maksimovic16Lukic17KosticSubstituted forDjuricicat 90+1'minutes10Tadic20S Milinkovic-SavicSubstituted forGrujicat 79'minutes9MitrovicSubstitutes
1Dmitrovic3Erakovic7Radonjic8Gudelj11Jovic12Rajkovic13Mitrovic15Babic18Vlahovic19Racic21Djuricic22Lazovic24Ilic25Mladenovic26GrujicReferee:Mohammed Abdulla HassanAttendance:39,789Live Text
Match ends, Cameroon 3, Serbia 3.
Second Half ends, Cameroon 3, Serbia 3.
Foul by Dusan Tadic (Serbia).
Christian Bassogog (Cameroon) wins a free kick in the defensive half.
Attempt saved. Marko Grujic (Serbia) right footed shot from outside the box is saved in the top centre of the goal. Assisted by Filip Djuricic.
Attempt saved. Georges-Kévin Nkoudou (Cameroon) right footed shot from a difficult angle and long range on the left is saved in the bottom left corner.
Nikola Milenkovic (Serbia) is shown the yellow card for a bad foul.
Foul by Nikola Milenkovic (Serbia).
Georges-Kévin Nkoudou (Cameroon) wins a free kick on the left wing.
Foul by Dusan Tadic (Serbia).
Collins Fai (Cameroon) wins a free kick in the defensive half.
Substitution, Serbia. Filip Djuricic replaces Filip Kostic.
Offside, Serbia. Dusan Tadic tries a through ball, but Aleksandar Mitrovic is caught offside.
Attempt missed. Aleksandar Mitrovic (Serbia) right footed shot from the centre of the box is close, but misses to the right. Assisted by Dusan Tadic.
Attempt saved. Vincent Aboubakar (Cameroon) right footed shot from outside the box is saved in the top centre of the goal. Assisted by Eric Choupo-Moting.
Dusan Tadic (Serbia) wins a free kick on the left wing.
Foul by Jean-Charles Castelletto (Cameroon).
Substitution, Cameroon. Georges-Kévin Nkoudou replaces Bryan Mbeumo.
Substitution, Cameroon. Samuel Oum Gouet replaces Frank Anguissa.
Corner, Cameroon. Conceded by Nemanja Radonjic.