Schumacher could win his eighth world title before he leaves the sport at the end of this season. His 90th victory — and fifth in Monza — moved him within two points of Formula One leader Fernando Alonso.
"Monza is just unbelievable. It has always been, particularly when all the fans are out," Schumacher said. "Due to the nature of the circumstances, it is obviously an unbelievable feeling."
Schumacher won in 1 hour, 14 minutes, 51.975 seconds.
Pole sitter Kimi Raikkonen of McLaren-Mercedes, who will replace Schumacher at Ferrari next season, finished second, 8.046 seconds behind. BMW-Sauber's Robert Kubica finished third, 26.414 back.
Alonso had his race stopped by a mechanical problem 10 laps from the end. Smoke began billowing out of the back of the Spaniard's Renault on the main straight and he came to a stop.
Alonso was penalized five places on the starting grid for blocking Ferrari's Felipe Massa in qualifying and he started 10th. He had just moved into third position when his engine failed.
"When you start 10th you have to push everything to the limit: yourself, the car, the tires and the engine," Alonso said. "But the verdict on this weekend is simple — the race was decided off the track on Saturday afternoon."
Alonso leads Schumacher 108-106 with only three races remaining this season. And Ferrari moved past Renault in the constructors' standings, and now leads 168-165.
"I am 100 percent focused for the constructor and the driver championship," Schumacher said.
Schumacher was challenged by BMW-Sauber's Nick Heidfeld at the start, briefly losing his second position. The Ferrari driver quickly gained second place back before the first corner.
Raikkonen made his first pit stop 15 laps in, giving Schumacher the lead for the first time. Schumacher increased his lead during the second round of pit stops.
"We weren't quick enough for a win today but it's still been a good week," said Raikkonen, who is yet to win this season despite three poles. "Of course you want to win but we were quick enough to challenge Michael."
Kubica became the first Polish driver to lead a Formula One race when he moved in front briefly while the leaders refueled.
"After qualifying ... I knew we were competitive for this race," said Kubica, who was competing in only his third race.
Nico Rosberg slowly returned his Williams to the pits with an apparent mechanical problem nine laps in and retired early for the fourth consecutive race.
Raikkonen's McLaren teammate, Pedro de la Rosa, had his race end when he drove off track on the 21st lap.