Madu, replacing running back C.J. Gable who's on the six-game injured list, scored after the Bombers had turned the ball over on a blocked punt in the second quarter.
The victory extended the Ticats' win streak to three games and put them atop the East Division with a 5-7 record.
The Bombers have lost four straight and sit last in the West Division at 6-7.
Winnipeg rallied with about six minutes left in the game, trying to repeat an early-season comeback when it defeated Hamilton 27-26 on July 31 with a two-yard touchdown pass to Nic Grigsby on the final play of the game.
Quarterback Drew Willy began the late drive completing a 29-yard pass to Romby Bryant and a 20-yard pass Grigsby before slotback Cory Watson caught a five-yard touchdown pass in the end zone with 5:52 remaining.
A two-point convert failed with an incomplete pass to Watson in front of 28,534 fans at Investors Group Field.
After the following kickoff and a Hamilton penalty, the Tiger-Cats started at their own nine-yard line. Two plays later, Hamilton had to punt, but Winnipeg defensive back Don Unamba was called for contacting kicker Justin Medlock.
Hamilton then got a first down and started from its own 25-yard line, but couldn't add to their lead.
With 2:04 remaining, Winnipeg started its last drive from its own 23-yard line. A couple of Hamilton penalties helped the Bombers get to mid-field.
Willy guided the offence down to Hamilton's three-yard line with 16 seconds left, but on third down with three yards to go he threw an incomplete pass into the end zone that wasn't near any receiver.
The Tiger-Cats have won four of their last five games, a run that's come after quarterback Zach Collaros returned after missing five games with concussion-like symptoms.
Willy, playing after injuring his throwing shoulder Sept. 13, took some punishing hits that had him getting up slowly a few times.
He was sacked four times in the first half, twice by defensive lineman Ted Laurent and once by linemates Eric Norwood and Justin Hickman.
Willy was also knocked to the turf a number of times, but finished the game completing 27-of-41 pass attempts for 303 yards and a TD.
Collaros, who was sacked twice in the first half, was 20 of 36 for 182 yards.
Medlock made field goals from 44, 37 and 39 yards, but went wide from 47 yards out.
Winnipeg scored off a safety when Collaros was sacked in the end zone by defensive lineman Bryant Turner.
Lirim Hajrullahu connected on a field goal from 20 yards.
The Tiger-Cats led 10-5 at halftime.
Hamilton's game-opening drive was kept alive with a Winnipeg pass-interference penalty and ended with Medlock's 44-yarder at 3:31 to make it 3-0.
The teams sputtered for much of the first quarter, with Winnipeg twice starting drives deep in its own end and Hamilton unable to capitalize on its good field position.
The Bombers didn't cross mid-field until time was winding down on the first quarter.
Turner's sack of Collaros in the end zone for a safety made it 3-2 at 1:04 of the second quarter.
The Bombers then turned the ball over when Hajrullahu took a snap that bounced in front of him, quickly kicked the ball and had it blocked by Hamilton defensive back Ed Gainey.
Receiver Samuel Giguere recovered the ball and the Ticats took over at Winnipeg's 31-yard line. Madu ran for nine yards and then weaved 22 yards through Bomber defenders for his first touchdown at 4:53 to make it 10-2.
The Bombers followed up with a nine-play, 66-yard drive capped off by Hajrullahu's 20-yarder, but it was a tough stretch for Willy.
He was knocked to the ground by defensive tackle Bryan Hall, drawing a roughing-the-passer penalty. Willy looked sore getting up, and it wasn't helped when Hall also tackled him hard later in the same drive.
Hajrullahu made it 10-5 with his 20-yard field goal at 10:25.
Norwood also went in untouched and barrelled into Willy as he was releasing the ball. Norwood had a career-high four sacks in Hamilton's 25-23 win over Edmonton last week.
The Ticats extended their lead to 13-5 at 2:19 of the second quarter with a four-play, 15-yard drive that Medlock finished with his 37-yard field goal.
Willy was also sacked by linebacker Simoni Lawrence in the third quarter.
Following a poor punt into the wind by Hajrullahu, Hamilton took over at Winnipeg's 48-yard line. The Bombers defence didn't allow them to take advantage of the good field position and Medlock tried a 47-yard field-goal attempt, but went wide left and the Bombers brought it out.
The Ticats led 13-5 heading into the four quarter.
With just under 11 minutes to go, it appeared like Winnipeg had recovered a Hamilton fumble after receiver Greg Ellingson couldn't hang onto a pass, but the incomplete-pass ruling on the field was upheld despite Bombers head coach Mike O'Shea challenging the call.
Winnipeg looked to pick up some momentum when Troy Stoudermire took a punt return 51 yards to Hamilton's 47-yard line, but the Bombers couldn't come away with any offensive surge and ended up punting.
Willy then engineered the scoring drive that ended with Watson's touchdown at 9:08.