Serbien kom till mötet med Schweiz med en seger i ryggen, då Aleksandar Kolarovs frisparksmål blev matchens enda mot Costa Rica. Schweizarna å sin sida inledde VM med att spela 1-1 mot Brasilien.
Serbien tog ledningen i matchen redan i den femte minuten, då Aleksandar Mitrovic nådde högst på ett inlägg och knoppade in bollen i mål till 1-0 med huvudet.
Serbiens ledning stod sig sju minuter in i den andra halvleken, då Schweiz kvitterade genom ett kanonskott från distans av Granit Xhaka till 1-1, 25-åringens tionde landslagsmål.
Strax efter kvitteringen var Schweiz nära att ta ledningen genom ett skott av Xherdan Shaqiri, men Stoke-ytterns avslut gick i stolpen och ut.
Shaqiri skulle dock till slut få utdelning. I minut 90 sprang 26-åringen sig fri och avslutade i mål bakom Vladimir Stojkovic i Serbiens mål.
Segern gör att Serbien står på tre poäng inför slutomgången i grupp E, medan Schweiz och Brasilien ligger på fyra. Det gör att serberna måste ta fler poäng än Schweiz i slutomgången på onsdag mot Brasilien eller vinna sin sista match för att vara säkert på avancemang. Schweiz är garanterat vidare vid seger mot gruppjumbon Costa Rica.
Schweiz har nu bara förlorat en av sina 24 senaste matcher. Hjälten Xherdan Shaqiri tror att den starka sviten hjälper laget.
- De tog ledningen med 1-0 men vi slöt oss samman. Vi vände på matchen, och det är något som vi inte hade åstadkommit för några år sedan, säger han på presskonferensen efter matchen.
- Jag är väldigt glad över att göra det här målet.
Se Shaqiris 2-1-mål i spelaren ovan.
Startelvor:
Serbien: Stojkovic - Ivanovic, Milenkovic, Tosic, Kolarov - Matic, Milivojevic - Tadic, Milinkovic-Savic, Kostic - Mitrovic.
Schweiz: Sommer - Lichtsteiner, Schär, Akanji, Rodriguez - Behrami, Xhaka - Shaqiri, Dzemaili, Zuber - Seferovic.