Italtrans rider Bastianini, Marc VDS man Sam Lowes and VR46 pair Luca Marini and Marco Bezzecchi came into the final round covered by 23 points, and fifth was enough to give MotoGP-bound Bastianini the crown by nine points over second-place finisher Marini.
It was Marini who got the holeshot from second on the grid, but he lost the lead when he selected neutral at Turn 3, allowing Gardner and Bastianini to move through.
Gardner’s early charge led to him opening up his gap to over a second after a handful of laps, while the injured Lowes worked his way past Marini on lap four to move into second.
Meanwhile, Bastianini was slipping down the order behind the likes of Bezzecchi, Lowes’ Marc VDS teammate Augusto Fernandez and Ajo KTM’s Jorge Martin.
Gardner’s lead would be wiped out by lap eight, with Marini and Lowes moving ahead into Turn 1, and the VR46 rider went on to open up a lead of 1.2s out front.
Gardner overhauled Lowes on lap 13 into the first corner after the Briton made a mistake a few corners earlier as he seemingly began to struggle with his injured wrist.
Marini would start to come under pressure from Gardner in the latter stages, while Lowes somehow rallied to keep the pair ahead in sight.
Bastianini continued to fight Fernandez over fifth spot and came under immense pressure in the latter stages as Martin, Fernandez and American Racing’s Joe Roberts closed up to him.
Gardner got on terms with Marini by lap 16 and pulled off his decisive overtake on the inside of Turn 3, with the SAG rider pulling clear by a second to claim the first grand prix win for his family since his father Wayne’s win at the 500cc British GP in 1992.
Marini did all he could to keep his title hopes alive, but the Valentino Rossi protégé – who will partner Bastianini at the Avintia Ducati squad in MotoGP next year – would have still fallen short of the title even if he had beaten Gardner to the win.
Lowes’ heroic effort concluded with him securing the final step of the podium and third in the standings equal on points with Marini, with Bezzecchi ultimately ending up 21 points adrift of Bastianini after finishing the race fourth.
Bastianini held off Martin in fifth, with Roberts, Fernandez, Pons rider Lorenzo Baldassarri and Petronas Sprinta’s Xavi Vierge rounding out the top 10.