Honda's MotoGP championship leader Marc Marquez won the German round for the seventh year in a row, across all categories, after a mid-race tyre gamble paid off.
The Spaniard forged 48 points clear at the top of the standings after Yamaha's reigning champion and main rival Jorge Lorenzo finished a dismal 15th.
Britain's Cal Crutchlow, on an LCR Honda, was second and 9.8 seconds behind with Italy's Andrea Dovizioso third for Ducati.
Italian great Valentino Rossi, Lorenzo's team mate, finished eighth.
Marquez, the 23-year-old who looks set for his third MotoGP title, had started on pole and pitted on lap 17, on a drying track after heavy rain just before the start, following an excursion into the gravel trap that dropped him to ninth.
The Spaniard was the first of the leading riders to change bikes but the move paid off with Marquez charging back through the field at the twisty Sachsenring circuit near Chemnitz in eastern Germany.