Tom Luthi eased to his first win in his Moto2 return season, while championship leader Lorenzo Baldassarri crashed out of the Americas Grand Prix.
Luthi – who endured a dismal debut MotoGP campaign in 2018 – battled with Alex Marquez early on, before breaking away to claim his first win in two years, while team-mate Marcel Schrotter followed him home in second for Intact GP's first-ever one-two finish.
Schrotter nailed his launch from pole position, but ran too hot into the first corner and allowed Marc VDS' Marquez into the lead.
Behind, his team-mate Xavi Vierge – who qualified a lowly 19th – Speed Up's Fabio Di Giannantonio, and home hero Joe Roberts [American Team] tangled on the run into Turn 1.
Further drama ensued, as championship leader Baldassarri [Pons] crashed out when he struck the rear of Ajo KTM's Jorge Martin, who was having a big moment running through Turn 9.
Luthi had a nibble at Marquez at Turn 1 at the start of lap three, but ran wide. He did so again at Turns 12 and 13 just a moments later, while Schrotter stalked the pair in third.
The leading trio ran line astern for the new few laps, quickly building up a gap of two seconds to the recovering Gresini rider Sam Lowes, who was forced wide at Turn 1 at the start after contact.
On lap eight, Luthi tried again to take the lead from Marquez at Turn 1, but ran wide, the pair touching on the exit.
Luthi held the inside line into Turn 2, but Marquez clung on around the outside and regained the place into the following curve.
Marquez could do nothing to resist Luthi at Turn 12, and now in free air, Luthi quickly built up a one-second lead.
Schrotter and Marquez survived heavy contact exiting Turn 12 on lap 10, with the German getting the better of Marquez at the final corner.
Luthi eased to the chequered flag once in the lead, with Schrotter edging away from the third-place battle to register his best result of the season and now sits just three points adrift of Baldassarri in the standings.
Marquez came under pressure late on from Jorge Navarro on the Speed Up, VR46's Luca Marini and Pons stand-in Mattia Pasini.
Navarro took third with three laps to go, and broke away from those behind to claim his debut Moto2 rostrum, while Pasini scythed past Marini and Marquez at Turn 15 for fourth.
Marquez held onto fifth, with Marini and Lowes behind. Simone Corsi [Tasca Racing], top rookie Enea Bastianini and his Italtrans team-mate Andrea Locatelli rounded out the top 10.
Remy Gardner was caught up in Baldassarri's lap one incident and was forced to run off track. But the SAG rider recovered to finish 11th, while Martin took the final point. His Ajo team-mate Brad Binder retired on lap two with a clutch issue.