Hitech driver Lawson shared the front row with first-time poleman Logan Sargeant, but passed the American driver with a gutsy move around the outside of Stowe on the first lap of 25 to grab an early advantage.
After a brief virtual safety car period, caused by Matteo Nannini coming to a stop at Luffield, Lawson managed to escape from Sargeant to the tune of one second by the sixth lap.
Piastri then passed Prema stablemate Sargeant to take over as Lawson’s main challenger by passing at Stowe with the help of DRS, and had reduced the gap to half a second by lap 9.
After a failed attack the following lap, Piastri nearly made an outside move at Stowe stick on lap 11 as he and Lawson ran side-by-side through Vale and Club, with Lawson hanging on.
At the end of the next lap, the safety car was deployed when Jack Doohan clattered into the side of Bent Viscaal’s car, the pair coming to rest against the barriers on the entrance to the national pits at Woodcote.
MP Motorsport’s Viscaal had spun after making contact with Carlin stand-in Ben Barnicoat at Luffield, leaving HWA driver Doohan with nowhere else to go.
The race resumed on lap 16, with Lawson making a strong restart to stave off Piastri, but the safety car was called again after a three-car incident at Club.
Max Fewtrell – who started fourth but dropped down the order after being forced on to the grass while battling Frederik Vesti on the opening lap – made contact with Oli Caldwell coming through Vale, pitching the Trident driver into a spin.
Lukas Dunner (MP) then collected the stricken Caldwell, tearing the rear end from the Briton’s car and leaving a considerable amount of debris on the track.
It meant the race would ultimately finish under the safety car, with Lawson claiming his first feature race win of 2020 and Renault junior Piastri stretching his points advantage with his third consecutive second-place finish.
Sargeant completed the podium in third, while Jake Hughes (HWA) took his best finish of the year so far in fourth having passed Vesti (Prema) around half-distance.
Alexander Peroni was sixth for Campos having started in the same position, the result of having a laptime in qualifying that was originally deleted reinstated.
Completing the scorers were Sebastian Fernandez (ART), Clement Novalak (Carlin) and David Beckmann (Trident) and Alexander Smolyar (ART), who grabbed 10th from Richard Verschoor (MP) on the final green-flag lap to take reverse-grid pole for Sunday’s sprint race.
After being nudged into the Luffield gravel by Viscaal, Barnicoat completed his first single-seater race since 2016 in 20th place, two spots ahead of Sophia Floersch (Campos), who was tipped into a spin by Red Bull junior Dennis Hauger on the opening lap.