At the start of the race Gardner pulled away cleanly from pole position, taking advantage of a battle between Fernandez and Bo Bendsneyder to escape at the front.
But it didn’t take long for rookie Fernandez to put daylight between him and his SAG rival, and he soon found himself on the tail of Gardner’s Kalex.
For the first half of the race two Ajo KTM riders circulated the track within half a second of each other, with Bendsneyder not running far behind in the final podium spot.
Finally, on lap 12, Fernandez made the move that had been in the making for a while, outbraking his more experienced teammate into Turn 1 to grab the lead of the race for the first time.
The battle for victory, however, wasn’t far from over, with Gardner keeping Fernandez honest as they slowly started pulling away from the rest of the field.
With three laps to go, Gardner appeared to slot in behind Fernandez as they braked for the opening corner, only for the 23-year-old to dive down the inside and make what turned out to be the race-winning move.
Once back in the lead, Gardner was able to build a buffer of 0.6s over his teammate, before doubling that advantage on the next tour to start the final lap with a lead of over a second.
Fernandez had no answer to Gardner’s pace on the final lap, the Australian easing to a third career win in Moto3.
Petronas Sprina’s Xavi Vierge ultimately claimed third position after clearing Bendsneyder on lap 16, with VR46’s Marco Bezzecchi – who jumped from 10th to sixth on the opening lap – also passing the SAG rider to secure fourth and reduce the points loss to the Ajo duo.
Augusto Fernandez was classified fifth on the lead Marc VDS bike, while Bendsneyder eventually finished two seconds off the podium in sixth.
Qatar and Doha winner Sam Lowes (Marc VDS) dropped to 12th in the opening laps but recovered to finish seventh, taking advantage of several incidents in front of him.
Intact GP’s Marcel Schrotter, Honda Team Asia’s Somkiat Chantra and American rider Joe Roberts (Italrans) completed the top 10, the last-named rising up the order in the second half of the race after dropping to 17th at one point.
Rising Japanese star AI Ogura (Honda Team Asia) crashed out of the race with three laps to go while running inside the top 10, suffering the second retirement of his rookie season.
A lap later Fabio di Giannantonio fell off his Gresini Kalex into Turn 1, taking an innocent Hector Garzo (Pons Kalex) along with him. This was the second collision between the two in a span of a month after the two also came together at Le Mans in May.