MARTINSVILLE, Va. - Denny Hamlin passed teammate Matt Kenseth for the lead with 28 laps to go Sunday and went on to end Toyota's 32-race winless streak in the NASCAR Sprint Cup race at Martinsville Speedway.

The driver for Joe Gibbs Racing held off a five-lap, bumper-to-tail challenge from Brad Keselowski for his 25th career win and fifth at the smallest and oldest track in the premier series.

"I did everything I could other than wreck him," Keselowski said.

The victory also came after a terrible blunder by four-time series champion and eight-time Martinsville winner Jeff Gordon. He took the lead for the first time with 58 laps to go and then got caught entering pit road too fast when the 16th and final caution came out with about 40 laps to go.

The mistake put him well back in the field, and he rallied to finish a disappointing ninth.

The day went better for Danica Patrick, who was seventh, her fifth career top-10 finish. That tied her with Janet Guthrie for most top-10s by a female driver.

IndyCar

ST. PETERSBURG, Fla. - Juan Pablo Montoya gave Team Penske a win in the season-opening IndyCar Series race at St. Petersburg, grabbing the lead away from teammate Will Power during a cycle of pit stops and holding off one strong challenge from Power to win.

Tony Kanaan finished third for Chip Ganassi Racing, followed by Helio Castroneves and Simon Pagenaud, as Penske put all four drivers in the top five.

Malaysian Grand Prix

SEPANG, Malaysia - Ferrari driver Sebastian Vettel won the Malaysian Grand Prix. Lewis Hamilton was second and Nico Rosberg third.