Staal fick först se Zach Parise, som var tillbaka i Wild efter att ha missat de senaste tre matcherna på grund av påssjuka, sätta 1-0 till hemmalaget i powerplay efter 11.06 av den första perioden. Staal ökade sedan på den ledningen från slottet med ett välplacerat handledsskott.
Sharks Melker Karlsson såg till att läget inte var i ett helt hopplöst läge inför period nummer två genom att sätta sitt nionde mål för säsongen efter 18.26.
Mittperioden blev däremot mållös och i den tredje kunde Staal med sitt andra mål i matchen fastställa slutresultatet till 3-1 i tom kasse.
Wilds svenske backrese, Christian Folin, lämnade matchen för Wild i den andra perioden och återvände aldrig.
"Det såg inte bra ut. Vi vet mer på måndag" - Bruce Boudreau om Folins skada
De två poängen gör att Wild alltjämt toppar Central Division före Chicago Blackhawks.
Här är en sammanfattning av nattens matcher:
Calgary Flames - New York Islanders 5-2 (4-0, 0-1, 1-1)
Flames behövde knappt fyra minuter på sig i den första perioden för att döda matchen mot Islanders. Efter 14.56 satte Michael Frolik 1-0 och efter 19.36 satte Sean Monahan 4-0 till hemmalaget. En rejäl islossning för Flames med andra ord som också drygade ut sin poängsvit till nio raka matcher.
Brian Elliott gjorde 33 räddningar för Flames och Mikael Backlund, som noterades för en assist i matchen, tangerade sitt personbästa i antalet poäng på en säsong, 47 stycken.
Pittsburgh Penguins - Buffalo Sabres 4-3 (0-3, 2-0, 2-0)
Sabres dominerade den första perioden i PPG Paints Arena. De sköt 21 skott och gjorde också 3 mål på Matt Murray i hemmakassen. Men de regerande mästarna ville annat när den andra perioden inleddes. Murray ersattes av Marc-Andre Fleury i kassen och hemmalaget kunde börja sin upphämtning. Justin Schultz och Evgeni Malkin gjorde varsitt mål i den andra och i den tredje slutförde Jake Guentzel och Conor Sheary vändningen.
För Buffalo var tappet ett tungt sådan. De har fortfarande häng på en wildcardplats från Eastern Conference men har fem poäng upp till Islanders.