The Gresini Ducati rider lined up third and despite briefly falling back off the line to fourth, took two positions in as many corners to run second.
He snatched the lead from KTM rider Jack Miller at Stowe the following lap and despite VR46 rider Bezzecchi’s late charge, Marquez took his maiden win.
Bezzecchi’s second-place finish sees him take second in the standings, with Maverick Vinales finishing third for Aprilia for his first sprint podium.
With Bezzecchi lining up on pole, he was embroiled in a battle for the lead with Miller, the Australian taking the lead into Brooklands on the first lap.
GasGas rookie Augusto Fernandez slotted into third before he was passed by Pramac Ducati rider Jorge Martin, with Marquez then passing him for fourth.
Martin briefly led at the end of the first lap before Miller retook the lead on the Hamilton Straight, with Martin second and Bezzecchi in third.
Behind, both Aprilias had a good start, with Vinales up into fifth by lap two while team-mate Aleix Espargaro slotted in behind him.
Marquez passed Martin at Copse before getting past Bezzecchi at Maggotts and Becketts for second.
As Miller ran wide, the Spaniard pounced, taking the lead at Stowe as Bezzecchi followed him through into second at Vale, with Miller falling to third ahead of Martin.
Vinales soon passed Martin before charging after Miller, eventually making it into the podium places at the start of lap six.
Up ahead, Marquez had built a 0.8s gap to Bezzecchi, with a further 1.3s back to Vinales, as Espargaro passed Miller for fourth.
Bezzecchi soon began to close the gap to the leader, slashing it by 0.4s by lap eight.
Pramac team-mates Martin and Zarco began a battle for sixth before the pair made it past Miller, with a close move between the Frenchman and the Australian at Stowe as Miller fell to seventh.
Miller and Martin traded positions several times over lap eight, but Martin finished ahead.
A charging Zarco passed Espargaro at the Village complex for fourth on the final lap, splitting the two Aprilias.
Despite a valiant last-lap effort from Bezzecchi, closing rapidly on Marquez, he was unable to catch the leader, finishing 0.3s behind Marquez.
Zarco finished fourth, with Espargaro fifth ahead of Martin and Miller. Fernandez was eighth, with the second KTM of Brad Binder rounding off the points-paying positions in ninth.
Championship leader Bagnaia had a difficult race, losing five positions on lap one to fall to ninth before running wide at Turn 15 to drop more positions.
He retains his lead in the standings but finished 14th, behind team-mate Enea Bastianini.
It was a dismal day for the Japanese manufacturers, with Yamaha rider Franco Morbidelli the highest finisher in 15th.
The factory Honda pair of Joan Mir and Marc Marquez were 17th and 18th, with Yamaha rider Fabio Quartararo in 21st having lined up last.
LCR rider Takaaki Nakagami was 20th, with Iker Lecuona, racing in place of an injured Alex Rins, was 22nd.
Pol Espargaro, making his sprint race debut for GasGas after returning from serious injuries suffered in FP2 at the season-opening Portuguese GP, finished 16th.