Mark Scheifele and Nino Niederreiter scored for Winnipeg.
Connor Hellebuyck won his 24th game of the season as the Jets moved to 31-14-5.
Bryan Rust scored the lone goal for the Penguins.
Tristan Jarry turned aside 29 shots for Pittsburgh, who dropped their second straight game.
Mark Scheifele opened the scoring 10:20 into the first when he one timed a Nikolaj Ehlers feed past Jarry to make it 1-0 Jets.
The Penguins turned the puck over at the Winnipeg blue line on a delayed offside as Ehlers knocked down an errant pass before breaking in on a two-on-one before sliding the disc to Scheifele, who promptly rocketed the puck past a shocked Jarry to score his 15th goal of the season.
Nino Niederreiter gave the Jets a two-goal lead at 15:39 when he snapped up a puck off the end boards off a Nate Schmidt shot from the point and poked it past Jarry to make it 2-0.
The goal snapped a 16 game goalless drought for him and was his 13th of the season.
Pittsburgh carried the edge in play in the second period, outshooting the Jets by a 16-7 margin.
Bryan Rust got the Penguins on the board 14:08 into the second stanza when he redirected an Erik Karlsson shot from the point past Hellebuyck at 14:08.
The goal was his 13th of the season.
Winnipeg had a chance to extend their lead just under the halfway point of the third whene Kyle Connor sent Nikolaj Ehlers in on a partial breakaway off a pass from the high slot but the Jet winger was stymied by Jarry.
There was no scoring in the third period.
SHOTS-PITTSBURGH 36 WINNIPEG 31
ATTENDANCE-15,225
NOTES-Jets winger Kyle Connor played in his 500th career game on the night.