Winnipeg (10-3) has now won eight of its last nine games.
The Eskimos (7-6) have now lost six straight games after a 7-0 start to the season.
There was no scoring in the first quarter, although the Blue Bombers threatened twice, with kicker Justin Medlock missing on a pair of field-goal attempts that were run back out of the end zone.
The Blue Bombers finally got the game’s first point six minutes into the second quarter, as Medlock missed a third field goal from 33 yards out, but this time got the rouge to make it 1-0.
Edmonton also had kicking woes in the second as a 51-yard field-goal attempt by Swayze Waters hit the uprights.
Winnipeg finally put things together with 13 seconds left in the first half when Nichols hit Clarence Denmark for a six-yard touchdown pass.
The Eskimos woke up early in the third quarter as Calvin McCarty made a nice one-handed grab for an unconverted five-yard TD to go ahead 8-6.
The Bombers padded their lead with a two-yard TD run by Andrew Harris just past the midmark of the third frame.
Edmonton responded with a 31-yard field goal to make it 15-9 heading into the fourth.
Winnipeg came right back with a 13-yard TD pass from Nichols to Darvin Adams. The convert kick missed.
The Eskimos settled for a 42-yard field goal by Waters on their next possession, but then closed to within two points midway through the final frame on a 21-yard TD pass from Mike Reilly to Derel Walker.
Edmonton’s hopes of completing the comeback were dashed when Reilly was picked off with 2:34 remaining by Chris Randle, who ran it back 37 yards for the major.
Winnipeg will play host to the Hamilton Ticats on Friday, while the Eskimos are in Montreal on Monday, Oct. 9.
Notes: The game featured the return of Edmonton defensive back Aaron Grymes, who had been with the NFL’s Philadelphia Eagles since helping the Eskimos win the 2015 Grey Cupâ€¦ Edmonton running back Travon Van left the game with a lower-body injury.