The Valencian started eighth on the grid but confidence in the wet, coupled with several early crashes, led him to fight for the lead with Filip Salac.
With a dry line forming, Garcia survived several scares looking for wet patches with a huge wobble seeing Salac briefly leading a Grand Prix for the first time.
The Spaniard quickly found himself in the lead, then took advantage of the last laps of the race to take a comfortable lead, to secure his second victory and the first victory for his team Gaviota GasGas Aspar.
His Czech rival held on for a superb second, his first podium, to 2.349 seconds for Rivacold Snipers Honda.
The teen-only stand was completed by Riccardo Rossi, who also made his podium debut.
BOE rider Owlride KTM could not close the gap with the leading duo who had escaped up front, but completed the fastest lap of the race in the flag race to keep John McPhee at distance as he chased him. down to try to tear off the third.
Despite his sustained pace in the final stages of the race to bring him back to contentiom, the Brisish rider had to settle for fourth place, but with great relief aboard his Petronas Sprinta machine which marks his first finish in points of the season.
He passed Ayumu Sasaki (Red Bull KTM Tech 3), who crossed the sixth row ahead of Adrian Fernandez, who started in 26th and staged an impressive comeback on race day to be the best rookie with his best result to date. .
Xavier Artigas was equally excellent in the eighth – he completely missed qualifying to go to the hospital for check-ups after an accident earlier in the weekend. Starting from 27th place on the grid, he also recovered places with a few quick laps on the pepper puddle track to finish seventh.
Championship leader Pedro Acosta started from 21st on the grid and was more entertaining than ever. An early fall from fifth place wasn’t enough to stop the Red Bull KTM Ajo rider, he kept the slide to a minimum, losing just ten seconds and coming back to where he started – back in 21st.
Taking on rivals once again, Acosta finished eighth at the checkered flag, extending their championship lead with a total of 103 over race winner Garcia who moved up to second overall.
Deniz Oncu’s late pace saw him climb to ninth place on the second Red Bull KTM Tech 3, while experienced Romano Fenati (Sterilgarda Max Racing) completed the top ten.
Pole Andrea Migno immediately pulled away from the track and didn’t take the chicane at the first corner, he made a careful run to stay upright and came in eleventh on the Rivacold Snipers second entry.
Ryusei Yamanaka and his CarXpert teammate Pruestel Jason Dupasquier were just behind the Italian in the race to the line, finishing 12th and 13th respectively. Izan Guevara was a distant 14th on the second GasGas bike.
Andi Farid Izdihar dominated Moto3’s very wet warm-up but had to serve a six-place grid penalty for crashing in yellow flag conditions in FP3, pushing him back last on the grid. He recovered to claim the final point for Honda Team Asia.
Lorenzo Fellon is the only French rider in Moto3, he finished 19th.
Carlos Tatay crashed on the reconnaissance lap but was able to reach the back of the grid after the warm-up lap. He arrived at the pits later in the race.
Niccolo Antonelli was the first faller, but certainly not the last. He was joined in the gravel by Tatsuki Suzuki, wildcard Takuma Matsuyama and Jaume Masia, who was taken to the medical center for checkups.
Jeremy Alcoba, Kaito Toba, and Darryn Binder all reunited after their fall. Alcoba and Toba were both lapped.
Yuki Kunii misses the French round after breaking his collarbone during his fall on Saturday.