0307 GMT October 16, 2019
The 21-year-old beat Lewis Hamilton's Mercedes by 0.191 seconds as both slipped ahead of early pace-setter Sebastian Vettel's Ferrari on their last laps, BBC Sport reported.
Vettel, who was nearly 0.2secs up on Leclerc after the first runs, aborted his final lap after an error.
Hamilton snuck ahead of Vettel by 0.029secs to join Leclerc on the front row.
Red Bull's Max Verstappen was fourth, split from teammate Alexander Albon by Mercedes' Valtteri Bottas.
"I'm extremely happy about today," Leclerc said. "It was a very good lap but there were some moments when I thought I had lost the car, but I took it back.
"I would like to thank the team so much. We came here knowing it would be a difficult track for us but we brought the package we needed.
"We brought some new bits that worked properly which is not always the case and was good to see. I have had a very tough Friday – it was not my day and I did not feel comfortable in the car. But I worked hard and today it paid off and I am very happy."