Serbien hade vänt 0-1 till 3-1 när Kamerun skapade ny nerv i matchen i den andra halvleken – mycket tack vare Vincent Aboubakar.
Anfallaren byttes in i den 55:e minuten och bara nio minuter senare satte han 2-3. Med minsta möjliga marginal var Aboubakar på rätt sida offsidelinjen och chippade läckert in reduceringen.
Två minuter senare kom också kvitteringen.
Kamerun utnyttjade en kontring och hittade Aboubakar på djupet. 30-åringen tog emot bollen innan han spelade fram till Choupo-Motingo som enkelt kunde sätta 3-3 från nära håll.
Serbiens stjärna hotade
Rubrikerna inför matchen handlade annars om Kameruns målvakt André Onana som petades av disciplinära skäl. Ersättaren Devis Epassy sattes på prov direkt och allra mest hotade Aleksandar Mitrovic.
Den serbiske stjärnan hade tidigt en nick över ribban och prickade sedan stolpen efter elva minuters spel. Fint väggspel på högerkanten öppnade för Mitrovic som gjorde en dragning inåt i banan innan han fick iväg ett bra skott med vänsterfoten.
Trots att Serbien ägde mycket av spelet i den första halvleken var det Kamerun som tog ledningen. En nickskarv på hörna nådde Castelletto som helt omarkerad på bortre stolpen kunde stöta in 1-0 efter 29 minuter.
Första VM-poängen sedan 2002
Två mål på övertid gjorde dock att Serbien gick till pausvila med ledning 2-1 och satte också 3-1 i början av den andra halvleken innan Kamerun inledde sin upphämtning.
Poängen är Kameruns första i VM-sammanhang sedan 2002. För Kamerun väntar nu favoriten Brasilien i den sista gruppspelsmatchen medan Serbien ställs mot Schweiz.
Klockan 17.00 möts de andra lagen i grupp G, Brasilien och Schweiz, och matchen sänds i SVT.
Se höjdpunkterna från Kamerun-Serbien
Världsmästerskapet
Kamerun
3 - 3
Serbien
Första halvlek
- N'Koulou24'
- 1 - 0Castelletto (N'Koulou)29'
- Bassogog30'
- 45'+1'1 - 1Pavlovic (Tadic)
- 45'+3'1 - 2S. Milinkovic-Savic (Živkovic)
- 45'+4'Jovic
Andra halvlek
- 53'1 - 3A. Mitrovic (Živkovic)
- AboubakarHongla55'
- 56'S. MitrovicPavlovic
- 2 - 3Aboubakar (Castelletto)63'
- 3 - 3Choupo-Moting (Aboubakar)66'
- BassogogToko Ekambi67'
- OndouaKunde Malong67'
- 78'BabicVeljkovic
- 78'RadonjicŽivkovic
- 79'GrujicS. Milinkovic-Savic
- Oum GouetZambo Anguissa81'
- N'KoudouMbeumo81'
- 90'+2'DjuricicKostic
- 90'+3'Milenkovic