Honda rider Marquez turned pole into an early lead and looked well on course for a seventh straight win on the Austin circuit as he extended his lead on the opening laps.
He had retreated to second almost four seconds ahead of Rossi’s Yamaha when he suffered a low-side crash in the left-hand turn of Turn 12 on lap nine of 20 and retired from the race.
Marquez’s death gave Rossi a narrow lead over Rins, but the Italian couldn’t shake off the Suzuki driver who managed to take the lead on lap 17 at Turn 7.
Rossi tried to take revenge on Turn 12, but ran far and from then on could never get close enough to launch another attack on Rins, who managed to hold out in the final laps.
The Spaniard eventually crossed the finish line with just 0.462 seconds in hand, claiming Suzuki’s first premier class win since Maverick Vinales triumphed at Silverstone in 2016.
About eight seconds behind the top pair, Pramac Ducati’s Jack Miller tended to fading soft tires, finishing third, marking his first podium since his Dutch TT win in 2016.
Andrea Dovizioso recovered from his low 13th place on the grid to sixth place on the first lap and made it to fourth place behind Miller, taking the lead in the championship.
Franco Morbidelli took his first top 5 finish for Petronas Yamaha ahead of Danilo Petrucci on the second factory Ducatis, Fabio Quartararo (Petronas) and KTM rider Pol Espargaro.
Francesco Bagnaia (Pramac) and Takaaki Nakagami (LCR Honda) completed the top 10.
A miserable day for Honda was made worse by an early crash at Cal Crutchlow at Turn 11 while finishing third behind Rossi and a mechanical failure for Jorge Lorenzo.
Vinales had to forget another race, he had a hasty start and had to serve a drive-through penalty before finishing 11th ahead of Andrea Iannone (Aprilia) and Johann Zarco (KTM).
Rins’ Suzuki teammate Joan Mir was also punished for the same infraction and finished 17th out of the points.
Aleix Espargaro (Aprilia) crashed on lap two, marking the only non-Honda retirement of the race.