The championship leader qualified on pole position at the Sachsenring and, while he lost the early lead, he needed only three laps to reclaim the ascendancy and was not headed thereafter.
Oliveira finished 0.676s back after 15 laps, with Bagnaia third, while Marc Marquez climbed from 13th to sixth and Jack Miller ended up outside the points in 11th.
Martin (Pramac Ducati) lined up with both of the Trackhouse Aprilias lining up alongside him and looked to have made the best of the start.
However, Oliveira tried to outbrake him at the first corner and both ran wide, opening up a big gap for Bagnaia (Ducati Team) to ride through and into the lead from Row 2 on the starting grid.
Marc Marquez (Gresini Ducati) took up 10th, three positions ahead of where he started, having been impeded by Stefan Bradl (HRC Honda) in Qualifying 1, while Miller (Red Bull KTM) climbed five spots to 11th and Remy Gardner ran 21st initially.
Martin went down the inside of Oliveira’s Aprilia at Turn 1 on Lap 2 to take over second place, then tried the same pass on Bagnaia on Lap 3.
He could not make the move stick but then squeezed past the #1 Ducati when they next rounded Turn 8, before Oliveira went up the inside of Bagnaia at Turn 13.
Meanwhile, Marc Marquez cleared brother and Gresini Racing team-mate Alex Marquez, then wrested eighth position from Red Bull KTM’s Brad Binder.
The Sachsenring king was up to seventh when he overtook Raul Fernandez at Turn 13 on Lap 6, despite the Trackhouse Racing pilot’s best efforts to keep him behind, while Bagnaia was already riding on a track limits warning in third place.
At the halfway mark, it was a lead group of Martin, Oliveira, Bagnaia, and Enea Bastianini (Ducati Team), with Franco Morbidelli (Pramac Ducati) fifth and Maverick Viñales (Aprilia Racing) sixth.
Marc Marquez was slowly reeling the latter in, and was forced to save a front end moment at Turn 1.
Martin started to pull away from Oliveira, stretching his lead to 0.8s with four laps to go, and that was essentially how it remained for the balance of proceedings.
Oliveira, Bagnaia, Bastianini, and Morbidelli also held position thereafter, but the fight for sixth was on.
Marc Marquez caught Viñales with two laps to go and then scythed down the inside at the start of the final lap but could not complete the pass.
He had another crack at ‘Top Gun’ at the very last corner and ultimately beat the #12 Aprilia to the finish line by 0.003s.
Binder finished eighth, Alex Marquez scored the final championship point on offer, and Marco Bezzecchi (VR46 Ducati) rounded out the top 10.
Miller ended up 11th, Remy Gardner (Monster Energy Yamaha) 20th on his return to MotoGP as an injury replacement for Alex Rins, and Pedro Acosta (Tech3 GasGas) last of the 22 starters after a late off which snuffed out his fading chances of finishing in the points.
Martin now leads the championship by 15 points over Bagnaia, with just Sunday’s grand prix remaining before the summer break.
Race results: Sprint race
Pos | Num | Rider | Nat | Team | Bike | Time/Gap |
1 | 89 | J. Martin | ESP | Prima Pramac Racing | Ducati | 20:18.904 |
2 | 88 | M. Oliveira | POR | Trackhouse Racing | Aprilia | +0.676 |
3 | 1 | F. Bagnaia | ITA | Ducati Lenovo Team | Ducati | +1.311 |
4 | 23 | E. Bastianini | ITA | Ducati Lenovo Team | Ducati | +1.458 |
5 | 21 | F. Morbidelli | ITA | Prima Pramac Racing | Ducati | +5.600 |
6 | 93 | M. Marquez | ESP | Gresini Racing MotoGP | Ducati | +6.281 |
7 | 12 | M. Viñales | ESP | Aprilia Racing | Aprilia | +6.284 |
8 | 33 | B. Binder | RSA | Red Bull KTM Factory Racing | KTM | +9.061 |
9 | 73 | A. Marquez | ESP | Gresini Racing MotoGP | Ducati | +9.201 |
10 | 72 | M. Bezzecchi | ITA | Pertamina Enduro VR46 Racing Team | Ducati | +10.800 |
11 | 43 | J. Miller | AUS | Red Bull KTM Factory Racing | KTM | +13.815 |
12 | 49 | F. Di Giannantonio | ITA | Pertamina Enduro VR46 Racing Team | Ducati | +13.960 |
13 | 20 | F. Quartararo | FRA | Monster Energy Yamaha MotoGP Team | Yamaha | +14.432 |
14 | 25 | R. Fernandez | ESP | Trackhouse Racing | Aprilia | +15.329 |
15 | 10 | L. Marini | ITA | Repsol Honda Team | Honda | +15.430 |
16 | 37 | A. Fernandez | ESP | Red Bull GASGAS Tech3 | GasGas | +15.493 |
17 | 5 | J. Zarco | FRA | CASTROL Honda LCR | Honda | +16.205 |
18 | 30 | T. Nakagami | JPN | IDEMITSU Honda LCR | Honda | +20.321 |
19 | 6 | S. Bradl | GER | HRC Test Team | Honda | +23.733 |
20 | 87 | R. Gardner | AUS | Monster Energy Yamaha MotoGP Team | Yamaha | +26.366 |
21 | 36 | J. Mir | ESP | Repsol Honda Team | Honda | +26.668 |
22 | 31 | P. Acosta | ESP | Red Bull GASGAS Tech3 | GasGas | +26.715 |
Race winner: 15 laps
Riders’ championship
Pos | Rider | Nat | Pts |
1 | J. Martin | ESP | 212 |
2 | F. Bagnaia | ITA | 197 |
3 | M. Marquez | ESP | 146 |
4 | E. Bastianini | ITA | 142 |
5 | M. Viñales | ESP | 121 |
6 | P. Acosta | ESP | 101 |
7 | B. Binder | RSA | 101 |
8 | F. Di Giannantonio | ITA | 92 |
9 | A. Espargaro | ESP | 82 |
10 | A. Marquez | ESP | 63 |
11 | M. Bezzecchi | ITA | 45 |
12 | F. Morbidelli | ITA | 44 |
13 | M. Oliveira | POR | 41 |
14 | R. Fernandez | ESP | 40 |
15 | F. Quartararo | FRA | 39 |
16 | J. Miller | AUS | 32 |
17 | A. Fernandez | ESP | 15 |
18 | J. Mir | ESP | 13 |
19 | J. Zarco | FRA | 12 |
20 | A. Rins | ESP | 8 |
21 | T. Nakagami | JPN | 8 |
22 | D. Pedrosa | ESP | 7 |
23 | L. Marini | ITA | 0 |
24 | S. Bradl | GER | 0 |
25 | P. Espargaro | ESP | 0 |
26 | R. Gardner | AUS | 0 |
27 | L. Savadori | ITA | 0 |