The MP Motorsport driver started fourth, moving up to third as polesitter Oliver Goethe dropped down the order before passing second-placed Isack Hadjar on lap four.
He made several challenges on then-leader Franco Colapinto, trading the top spot several times before securing the lead on lap 10 as Colapinto went wide at Turn 3.
From there, Collet held fast, crossing the line 6.5s ahead of Colapinto to secure his first series win.
Colapinto settled for second, holding off a challenge from Kush Maini, who took his first series podium.
The race started in damp conditions behind the safety car, before a rolling start led by Euroformula Open championship leader Goethe.
Colapinto quickly took the lead, with Collet following him through at Turn 4 as Goethe struggled in his first F3 race.
The safety car was deployed early on as David Vidales made contact with Pepe Marti out of Turn 3 before crashing into the barriers.
Racing resumed on lap four, with Goethe under attack from Jak Crawford as he fell down the order, while Collet passed Hadjar at Turn 1.
Goethe then fell to sixth as he was passed by first Crawford and then Maini, losing two places in as many corners, before Victor Martins followed the pair through.
Collet attempted passes on Colapinto at Turns 12 and 14, but the Van Amersfoort driver retained the lead.
Another safety car period came on lap five, as Brad Benavides and Ido Cohen made contact at Turn 1, the former hitting into the side of his Carlin rival and ending both their races.
With racing resuming on lap eight, Hadjar attempted to snatch second place before Collet fought back at Turn 3.
Further back, feature race polesitter Alexander Smolyar dropped down the order from sixth to 18th after making contact with Gregoire Saucy and running through the chicane.
Martins ran wide at Turn 14, allowing Crawford through, before the ART driver endured a fierce challenge from Arthur Leclerc up to Turn 4.
Collet took the lead on lap 10, taking advantage of a forced error from Colapinto, while Leclerc moved past Martins as the championship leader ran wide at Turn 13.
A rare mistake came from Hadjar just three laps from the end, allowing Maini and Crawford through as he went deep at Turn 2, before Leclerc did the same.
Crawford was on the back of Maini in the fight for third, as the MP driver caught up with Colapinto in second.
Hadjar, struggling with his tyres, had fallen to sixth, fighting off title rival Martins for the championship lead.
Chaos ensued on the last lap, with Leclerc and Crawford making contact at Turn 12 as the Monegasque driver attempted a move down the inside, dropping the American down the order.
The following corner, Leclerc and Martins made contact as Leclerc went wide at Turn 13, leaving Martins with nowhere to go.
Martins held on to finish sixth, but Crawford dropped to 20th while Leclerc failed to finish, having suffered terminal suspension damage.
Hadjar held on to take fourth despite his tyre struggles, while Ollie Bearman took advantage of his team-mates’ tussle to finish fifth.
Saucy took sixth despite his contact with Smolyar, with Goethe taking eighth to secure his first series points on debut.
Roman Stanek finished ninth for Trident, with team-mate Zane Maloney rounding off the top 10.
F3 Hungary: Sprint race result (18 laps)