Russell was running in third place with Hamilton behind him when the pair suffered a water leak, allowing Ferrari's Carlos Sainz to pass the seven-time world champion in the penultimate lap.
The issue also pushed Russell onto the defensive, but he held off the Spaniard to take the third podium spot, his second of the season after Australia, albeit 20 seconds off Sergio Perez in second.
Like Russell, Hamilton was told to lift and coast with the potentially race-ending issue, but managed to finish in fifth.
Russell said: "Yeah, it was very difficult in the last few laps. It was a survival race when we knew we had a gap.
"As I said, just proud to bring it home in P3 and thanks to all the fans here. They've been amazing all weekend and the support for F1 at the moment, it is in an incr