The MotoGP world champion Marc Marquez chalked up his ninth victory in a row despite starting the German Grand Prix from a crowded pitlane after pre-race rain at the race.
Marquez's Repsol Honda team-mate and compatriot Dani Pedrosa finished second, 1.466 seconds behind, with double world champion Jorge Lorenzo completing an all-Spanish podium with third for Yamaha.
Marquez, who last year became the youngest ever MotoGP champion, extended his points lead over Pedrosa to 77 points.
The 21-year-old, who now has 225 points to Pedrosa's 148, became the first rider since Italian Giacomo Agostini in 1970 to win the first nine races of a season.
Agostini won the opening 10 races that year.
Italian Valentino Rossi finished fourth on the other works Yamaha.