Third-starting Perez had the worst start out of the frontrunners as he saw Mercedes' George Russell pull along the inside into Turn 1 at Interlagos.
He was then also passed by the second Mercedes of Lewis Hamilton, who pulled off a late move around the outside into Turn 4.
But Perez was soon able to pass both Mercedes cars to reclaim third by lap 10 of the 24-lap sprint, which he kept until the finish.
Perez felt the time he lost at the start prevented him from having a go at McLaren's Norris in second, as he had to ask too much of his soft tyres to pass Hamilton.
"Yeah, it was not an easy one, I had a terrible start, ended up losing place to George. And then another place to Lewis into Turn 4," said Perez, who crossed the line nine seconds behind Norris and another four seconds behind his Red Bull team-mate Max Verstappen, who won at a canter.
"From then on, I was fighting. I had to use my tyres a lot. And then I think I paid the price towards the end.
"Overall, it's been a good day. Good points there. But unfortunately, I think without the start we could have been a lot further up.
"The problem I had was that I couldn't manage. I had to push. And we know that this place is very sensitive for that. It ended up costing us."
Hamilton crossed the line in seventh after struggling with his tyres, which meant Perez was able to score his rival for second in the championship by four points, extending his gap to 24 points.
With Hamilton starting Sunday's grand prix in fifth and Perez in ninth, the Mexican has his work cut out to keep that lead intact.
"Obviously, it's important," Perez said about increasing his advantage. "But it's more important to keep that momentum going now, we had a very good day overall.
"Hopefully tomorrow, which is the main race, we can consolidate with a strong result."