Efter två matchers motvind spelade Marocko för äran mot Spanien, som jagade avancemang till åttondelsfinal.
Den lille playmakern Isco anförde sin spanska armé, men det var marockanerna som tog ledningen i matchminut 14.
Khalid Boutaib snodde åt sig bollen, löpte länge och väl, och bredsidade in 1-0. Fansen exploderade i glädje och Andrés Iniestas blick var talande tom.
Bara ett par minuter senare tog dock Iniesta tag i matchen. Han dansade fram som han brukar och serverade Isco, som enkelt skickade upp bollen i nättaket – 1-1.
Spanien var därefter på jakt efter ett ledningsmål och kom som vanligt i våg efter våg med sina bolltrollare och en flygande Jordi Alba på vänsterkanten.
Närmast kom Iniesta när han rann igenom och smekte fram en passning längs backen, men ingen medspelare var framme och petade in den.
Ännu högre tempo
När andra halvlek drog igång la de båda lagen i en ännu högre växel – och det gick ett sus igenom publiken när Nordin Amrabat dundrade iväg en yttersida i kryssribban.
I en svängig match blev det ändå Marocko som tog ledningen igen. Med tio minuter kvar hoppade inhopparen Youssef En-Nesyri högst på en hörna och skallade stenhårt in 2-1.
Den marockanska delen av publiken hade segervittring och arenan kokade, men på övertid klackade Iago Aspas in 2-2 och domaren gick ut för att VAR-granska målet.
När han dömde mål och inte offside rasade marockanerna både på läktaren och vid sidlinjen. När slutsignalen ljöd följdes den upp av busvisslingar av supportrar som uttryckte sitt missnöje.
Resultatet innebär att redan utslagna Marocko faller med flaggan i topp. Samtidigt är Spanien vidare till åttondelsfinal, där man möter Ryssland. Även Portugal är vidare och ställs mot Uruguay.
Världsmästerskapet i fotboll
Spanien
2 - 2
Marocko
Här är startelvorna
Spanien (4-3-3): 1 De Gea; 2 Carvajal, 3 Piqué, 15 Ramos (kapten), 18 Jordi Alba; 5 Busquets, 6 Iniesta, 10 Thiago; 22 Isco, 19 Costa, 21 Silva
Marocko (4-2-3-1): 12 Mohand; 17 Dirar, 6 Saiss, 4 Da Costa, 2 Hakimi; 8 El Ahmadi, 14 Boussoufa (kapten); 16 N. Amrabat, 10 Belhanda, 7 Ziyach; 13 Boutaib