The Iron were without 13-goal top scorer Gary Hooper (groin), while Kenny Milne made his first start in 19 months. Posh made two changes with Lee Frecklington and Reuben Reid coming in.
The home side made a positive start and their first clear opportunity came with seven-and-a-half minutes gone.
Marcus Williams played Thompson into the penalty area but Peterborough goalkeeper Joe Lewis came racing out of his goal, put his body on the line, and made a brilliant block.
But the opener arrived in 15th minute when Grant McCann pinched the ball from the dithering Frecklington.
A neat little interchange of passes involving McCann and Matt Sparrow saw Hayes emerge with the ball on the right-hand side of the box.
The Scunthorpe frontman briefly looked up before thumping the ball home from a tight angle for his 11th goal of the season.
The hosts were clearly dominating and scored a deserved second in the 25th minute.
Hayes picked the ball up in midfield and quickly threaded the ball through for Thompson who had missed a similar chance earlier in the game.
But on this occasion he showed great pace, shrugged off the challenge of Mark Little and with Lewis in no-man's land, he clipped the ball beyond him.
Togwell added a superb third in the 44th minute when he was given far too much time on the ball. He drove at the defence and knocked a well-aimed shot towards goal.
Lewis was far too slow in getting down and after taking one bounce on the greasy surface, the ball struck the post and finished up in the back of the net.
The second half started slowly and home winger Martyn Woolford was withdrawn when he picked up a knock.
The visitors did improve, with Charlie Lee heading over and Exodus Geohaghon flashing a shot narrowly wide of the left-hand post just shy of the hour mark.
McCann stung the palms of Lewis before Thompson helped himself to his second goal of the night in the 64th minute.
Hayes collected the ball on the edge of the penalty area and slipped an inviting ball behind the Peterborough defence for Thompson, who fired the ball hard and low across Lewis and into the bottom left corner.
Home goalkeeper Joe Murphy produced a superb save from a Craig Mackail-Smith header late on to ensure he kept a clean sheet, but the points were already well won by that stage.