Graham Rahal was second and Ryan Briscoe third at the 2.5-mile, 11-turn Anhembi temporary street circuit.
Power, who started from the pole position, drove to victory for Penske after Japan's Takuma Sato had to pit for fuel with about 10 minutes left. Sato led for 23 laps but finished eighth.
Power finished 4.672 seconds ahead of Rahal and 7.904 in front of teammate Briscoe. It was his second win in four races this season, giving him the points lead going into the Indianapolis 500 later this month.
Power got his second consecutive win in Sao Paulo despite damage to his car. He lost control exiting a turn and touched the wall with his left-rear tire.
"I bent the rear suspension enough to make the steering wheel quite off to the left," he said. "At first I was worried, I thought, 'Man, this might be tough to drive,' but then I just put my head down and kept (going). I adjusted to the imbalance in the car and it was fine."
FORMULA ONE: The circuit's governing body has given Bahrain until June 3 to decide whether a new date can be set for the Bahrain Grand Prix this year.
The Bahrain GP was originally scheduled to be the season-opening F1 race March 13. It was canceled by Bahrain's Crown Prince Salman bin Hamad Al Khalifa after anti-government protests in the country.
The FIA announced the decision on its Web site Monday, saying the "decision was taken after consultation with the relevant Bahraini authorities and Formula One Management, the international promoter."