Italian Andrea Dovizioso won a Czech Grand Prix thriller in a Ducati one-two on Sunday while Honda's Marc Marquez finished third in his 100th MotoGP race to stretch his championship lead to 49 points.
Spain's Jorge Lorenzo was second, holding off compatriot and future team mate Marquez to the line.
Four-times MotoGP champion Marquez now has 181 points after 10 races while Italian great Valentino Rossi, who finished fourth for Yamaha after passing Britain's Cal Crutchlow at the final corner, has 132. Dovizioso moves up to third on 113.
Dovizioso led from pole position in a slow-burning race that turned into a wheel-to-wheel thriller, with riders looking to save tyres early on and wary of the threat of rain before setting caution aside.
The top three were split by just 0.368 of a second at the chequered flag.
"What a weekend. I expected to be fast but not like this," said Dovizioso after his second victory of the season.
"Pole position and a really perfect race because everybody was struggling with the rear tyre and everybody had to ride very smoothly. I did everything perfectly.
"Jorge was there and Marc was there but I had the feeling they were on the limit like me so my strategy worked," added the 32-year-old.
Rossi led at the start from second on the grid but Dovizioso was soon back in front and the field ran close together through the early laps with the two Italians trading places without either breaking away.
Spaniard Maverick Vinales, Rossi's team mate, retired after a three-rider crash on the opening lap along with Britain's Bradley Smith and Germany's Stefan Bradl.
Six riders pulled away slightly and settled into a tight leading group after 10 laps but it was still anyone's guess who might end up as race winner, with Lorenzo out of the podium places.
"It was a spectacular race, a lot of fighting at the end," said Lorenzo.
"This time I preferred to be a little bit slower at the beginning, to be in third or fourth position and to save a little bit the tyre and attack at the end. The strategy was OK this time.
"Unfortunately Marc attacked me two laps from the end so this meant that Dovi went away a little bit and I could not make the final attack."
Marquez said he usually struggled in Brno and his main aim had been to stretch the overall lead and he was happy to have done that.