The winner was ahead of Piastri by 0.698 seconds, while Mercedes driver George Russell (+21.916) took third place.
McLaren celebrated its 200th victory in F1, winning its fourth race in a row.
Norris, using a one-stop strategy, defended first place at the end of the race in a battle with Piastra, who was running on newer tires.
Ferrari's Charles Leclerc, who won the qualifying, finished fourth (+42.560), with Aston Martin's Fernando Alonso in fifth (+59.040), Sauber's Gabriel Bortoletto in sixth (+66.169), Alonso's teammate Lance Stroll in seventh (+68.174), Racing Bull's Liam Lawson in eighth (+69.451), reigning world champion Max Verstappen in ninth (+72.645) and Mercedes' Kimi Antonelli in tenth, who was overtaken by a lap.
After 14 rounds, the leader in the overall standings with 284 points is still Piastre, Norris has accumulated 275, Verstappen - 187, Russell - 172 points, and Leclerc - 151 points.
In the Constructors' Championship, McLaren is in first place with 559 points, Ferrari has 260 points, Mercedes has 236 points and Red Bull has 194 points.
It was previously reported that Norris won the first two practice runs, Piastre won the third, and Leclerc won the qualifying.
This season, 24 rounds are being held in the F-1 championship.