The 28-year-old German came home 9.2 seconds clear of nearest rival and team-mate Lewis Hamilton who coped with loss of vision in one eye as he held off Australian Daniel Ricciardo's Red Bull in the closing laps.
It was Rosberg's second consecutive victory in his home event, his second win of the 2014 season and the fifth win of his career.
Fernando Alonso finished fourth for Ferrari ahead of Nico Hulkenberg of Force India and Jenson Button who finished sixth for McLaren.
Felipe Massa came home seventh for Williams, Jules Bianchi was eighth for Marussia ahead of fellow-Frenchman Romain Grosjean of Lotus and Kevin Magnussen finished 10th in the second McLaren.
Rosberg's win carried him to 122 points in the title race ahead of Hamilton, who was only half a second ahead of Ricciardo as they crossed the line, on 118.
"It's another special day for me, for sure," said Rosberg.

"Lewis drove well and pushed me massively hard. The pressure was on but I kept it cool and pulled a bit of a gap at the end because of the refreshed tyres. Thanks to the team for all their great work," he added.
On an overcast afternoon in the Mediterranean principality, with an air temperature of 20 degrees Celsius and a track temperature of 28, there was palpable tension in the air before the start.
Following Saturday's controversy, after Rosberg had gone down an escape road on his final lap, and Hamilton's threat to 'take a leaf out of Senna's book', fireworks were expected.


Latest News from Sports News Desk