Jorge Martin produced a Misano masterclass to wrap up a double and cut Francesco Bagnaia's title lead at the top of the MotoGP World Championship to 36 points in San Marino.
As he did in Saturday's Sprint, Martin led all the way in the 27-lap Race at Round 12 to bag a crucial 25 points.
Italy's Marco Bezzecchi finished second on the VR46 Ducati ahead of Bagnaia, who again had to dig deep to keep KTM test rider and Misano wildcard Dani Pedrosa at bay for third in a repeat of the top four from the Sprint.
Martin seized his chance to capitalise on Bagnaia's injury struggles after the reigning world champion was left battered and bruised following a massive highside at Catalunya. The 26-year-old had to be helped off his machine in parc ferme after the 27-lap race.
Martin grabbed the lead again into the first corner with Bagnaia snatching second on the Lenovo Ducati, which was decked out in a special yellow livery at the Marco Simoncelli circuit.
Pedrosa had a big moment in Turn 1 and almost highsided in front of the pack but recovered to slot into fourth behind Bezzecchi, who was also riding injured with a damaged left hand.
Bagnaia was determined not to let Martin pull away and had a look on his inside at the final corner at the end of the opening lap, but the Pramac rider closed the door.
Brad Binder (Red Bull KTM) moved past Pedrosa for fourth, 0.6s down on Bezzecchi in third, who was chasing Bagnaia and Martin.
Maverick Viñales was holding sixth on the factory Aprilia ahead of Oliveira (RNF Aprilia), Repsol Honda's Marc Marquez and Alex Marquez (Gresini Ducati).
Bezzecchi lost a few tenths on the fifth lap when he ran wide as Martin and Bagnaia continued to lead the way. Binder was around seven tenths back in fourth with Pedrosa on his own in fifth.
Bezzecchi passed Bagnaia at Turn 10 on the next lap but ran wide, allowing Bagnaia through again.
Martin was able to open a gap of half-a-second as Bagnaia and Bezzecchi tripped each other up.
South African Binder slid out of fourth but re-joined the race, promoting Pedrosa one place, who was around one second behind Bezzecchi in third.
Martin was setting a searing pace at the front and began to break his rivals, edging further ahead and building a lead of over two seconds.
Bezzecchi finally took second from Bagnaia on Lap 19, while Pedrosa was beginning to bridge the gap to the injured Bagnaia as he sensed another crack at a sensational podium with eight laps to go.
Martin had the race in the bag and closed out victory to cap a perfect weekend at San Marino, with the Spaniard shattering the lap record in qualifying to secure pole and winning both races for his second double of the season.
Bezzecchi crossed the line 1.350s behind while Bagnaia was able to secure third from Pedrosa.
Viñales was six seconds back in fifth ahead of Oliveira, while Marc Marquez prevailed in a fight with Raul Fernandez (RNF Aprilia) and Luca Marini (VR46 Ducati) for seventh.
Pramac Ducati's Johanna Zarco filled out the top 10 ahead of Alex Marquez.
Aleix Espargaro, a double winner last weekend at the Catalan Grand Prix, was 12th for Aprilia Racing, narrowly fending off Yamaha's Fabio Quartararo.
Binder finished inside the points after fighting back to claim 14th following his earlier slip off, getting ahead of Franco Morbidelli (Monster Energy Yamaha).
Ducati test rider Michele Pirro and Jack Miller (Red Bull KTM) crashed out at Turn 4, with the incident due to be reviewed after the race.
Former champion Joan Mir was also a faller at Turn 4 on the Repsol Honda on the following lap.
Round 13 of the championship takes place with the Indian Grand Prix at Buddh International Circuit (September 22-24), which is a new venue on the MotoGP calendar.