Verstappen started on pole and held off Leclerc at the first corner, as he did last week at the season-opener in Bahrain which he won, before quickly building his lead.
The only interruption came when Lance Stroll’s crash brought out the safety car. Verstappen came into the pits for a tire change and after the restart easily passed Lando Norris — who hadn’t stopped — to retake the lead.
Perez had a five-second penalty because Red Bull released him from a pit stop into the path of another car, but that didn’t matter since he finished far ahead of Leclerc.
Eighteen-year-old British driver Oliver Bearman was seventh for Ferrari in his first F1 race, one day after being called up as an emergency replacement for Carlos Sainz Jr., who needed an operation to treat appendicitis.
Oscar Piastri took fourth for McLaren, with Aston Martin’s Fernando Alonso fifth and George Russell sixth for Mercedes.
Behind Bearman in seventh, McLaren’s Lando Norris held off Mercedes’ Lewis Hamilton in a fight for eighth place. Nico Hulkenberg was 10th for Haas’ first point in F1 since the Singapore Grand Prix in September.
Verstappen’s second win of the season followed speculation over his future at Red Bull.
Verstappen had suggested Friday that he might reconsider his relationship with the team if his mentor Helmut Marko were to leave Red Bull, but Marko told German broadcaster Sky Sport on Saturday that he was staying.
The team’s parent company last week dismissed a complaint of alleged misconduct by Red Bull team principal Horner toward a team employee.