Portugal hade ledningen med 14-13 i halvtid efter en blek start av Sverige, men den regerande Europamästaren spelade upp sig efter pausvilan.
Daniel Pettersson blev Sveriges främste målskytt i matchen med åtta fullträffar. Succéspelaren Eric Johansson satte det sista blågula målet i matchen, hans sjunde för dagen.
– Vi snackade i halvtid om att det var lite lojt i första och att vi behövde gå mer för det i andra. Men jag tycker att det blev bättre och vi gick upp i några bollars ledning, säger Eric Johansson till SVT Sport.
– Vi spelar för Blågult, för landslaget, och då finns inga halvtaskiga matcher. Vi försökte verkligen elda i gång det men med facit i hand saknades någon procent i dag. Samtidigt ska man inte ta ifrån Portugal deras prestation. De fick matchen dit de ville och drog ner tempot, säger Jim Gottfridsson.
Är det viktigt att hålla segersviten intakt?
– Det tycker jag. Vi älskar att vinna matcher och det ligger i vår natur att vilja vinna hela tiden. Vi gjorde jobbet i dag.
Gottfridsson: ”Nu är det vinna eller försvinna”
Sveriges kvartsfinal spelas i Tele2 Arena i Stockholm på onsdag och vilka som står för motståndet avgörs i morgon, måndag. Då möts Danmark och Egypten i en gruppfinal i grupp 4.
Sverige möter sannolikt Danmark eller Egypten, men även Kroatien har en teoretisk chans.
– Det är nu det börjar och nu behöver vi publiken ännu mer. Stockholm får steppa upp, säger Gottfridsson.
Eric Johansson: ”Vet vad jag kan”
Supertalangen Eric Johansson imponerade på nytt för Sverige. SVT:s expert Magnus Grahn har tidigare under mästerskapet sagt att vänsternian har kapacitet att bli bäst i världen.
– Det är kul när det skrivs om en på ett positivt sätt, men det är inget som jag lägger någon jättestor vikt vid. Jag vet vad jag kan och kör mitt egna race och försöker hålla så lite koll på sociala medier som möjligt. Då släpper lite av pressen utifrån, säger Johansson.
Vad säger du om din egen insats i dag?
– Den är godkänd, tycker jag. Jag hade så klart någon missad pass och något missat skott, men det är sånt som sker. Det känns som att jag har hittat rytmen och kommit in i VM.
MATCHFAKTA
Sverige-Portugal 32-30 (13–14)
Sverige: Daniel Pettersson 8, Eric Johansson 7, Lucas Pellas 3, Oscar Bergendahl 3, Jonathan Carlsbogård 2, Max Darj 2, Jim Gottfridsson 2, Olle Forsell Schefvert 2, Felix Claar, Linus Persson, Lukas Sandell.
Portugal: Antonio Areia 8, Victor Iturriza 7, Rui Silva 6, Francisco Costa 4, Luis Frade 2, Fabio Magalhaes 2, Leonel Fernandes.
Publik: 11 670 (Scandinavium, Göteborg).