Verstappen was cruising to victory before a Safety Car was called on lap 49 of 70 following Yuki Tsunoda’s error coming out of the pits, allowing Sainz to close on the leader on fresher tyres.
The Dutchman held off Sainz across 16 laps, with the Spaniard still yet to claim his maiden Formula 1 Grand Prix triumph.
“It was a tough race,” Verstappen told reporters. “I expected to have a little bit more pace, but we seemed to lack a little bit compared to Carlos It was a bit more difficult than I expected.
“The Safety Car came out and I was also not very happy with that, because then I knew of course he had fresh tyres behind me, and already with I think a little bit more pace compared to me
“But the last 15, 16 laps, we were flat-out pushing to the limit, and I knew of course that I couldnt make a mistake. But it was good racing.”
Meanwhile, Hamilton’s third-place finish marked his first medium since the season opener in Bahrain, taking him to 77 points in sixth overall.
“It feels great to be in amongst the battle,” Hamilton said.
“For a second I was kind of keeping up with these guys. Its given me and the team a lot of hope that theres more to come from this car, the potential is there.
“When you get a full race distance you find a lot out with the car. A lot to take from today… I know where Im losing to these guys, so thats where Im going to focus on attacking to improve.”
Hamilton’s Mercedes teammate George Russell finished fourth, while Leclerc was in fifth, with Alpine-Renault’s Esteban Ocon sixth.