Matchen inleddes jämnt på Strandvallen. Båda lagen turades om att ha bättre perioder. Sedan tog Elfsborg över och blev mer aggressiva.
Olsson tryckte till och gav Elfsborg ledningen. Julius Beck träffade ribban i första halvlek efter ett pass från Olsson.
Mjällby jagade kvittering i slutet. Ossian Nordvall, 19, hoppade in i den 84:e minuten och gjorde allsvensk debut för Elfsborg.
"Det var mest att försöka hålla nollan och ta tre poäng", säger Nordvall till bt.se.
Beck spelade 87 minuter trots stukad fot. "Det gör lite ont, men det är inget som 'en god tejp och lite painkillers' inte kan klara", säger han till bt.se.
Mjällby har nu åtta raka matcher utan seger. Jacob Bergström är förvånad över den tappade hemmastyrkan. "Att vi har tappat det var det sista jag trodde vi skulle göra", säger han till nsk.se.
Elfsborg tar andra segern i rad och klättrar i tabellen.