NEWTON, Iowa (AP) -- If this was Brad Keselowski's final trip to Iowa Speedway, he made it a memorable one.
Keselowski held off the charging Michael McDowell on Saturday night to win the NASCAR Nationwide race at the short track.
The only Sprint Cup driver commuting from Pocono in Pennsylvania, Keselowski led 146 of 250 laps for his third Nationwide victory of the season and second in two starts.
Trevor Bayne was third, followed by Sam Hornish Jr. and Ty Dillon.
Keselowski, who ran the No. 22 car so Ryan Blaney could stay in Pocono for Saturday's Truck race, was set to cruise to an easy win when James Buescher's crash erased his lead less than 10 laps from the finish.
But Keselowski went high to overtake McDowell and held on for his 30th series victory.
"He had me there for a minute. Somehow I slipped back by him. I'm really not even sure how that worked out," said Keselowski, who mentioned after the race that the seat for the No. 22 car in Iowa will likely be given to a Penske developmental driver in the future. "These wins, they're not easy to come by."
Points leader Chase Elliott finished eighth. He leads Regan Smith by two points.
Keselowski won for the third time at the track. He won the inaugural race five years ago and topped Hornish last season.
Keselowski's success on Iowa's short track -- along with a front-row spot next to Bayne and six consecutive top-three finishes in NASCAR's second-tier series -- had him pegged as the heavy favorite from the moment the green flag dropped.
The Sprint Cup regular didn't disappoint.
Keselowski and Hornish swapped the lead much of the night, with Keselowski taking control two-thirds of the way through the race.
Dakoda Armstrong's blown tire less than 70 laps from the finish gave the front-runners a chance to make pit stops. Keselowski won the race off pit road and appeared to have the race locked up until the final caution put him in jeopardy.
The flag gave a relatively boring race a brilliant finish.
McDowell briefly held the lead, and the first win of his career appeared within reach before Keselowski made the move of the race.
"Brad definitely had the best car. But on those restarts, everybody's got a shot," McDowell said. "I tried my best. I gave it all I had. But I just got a little too loose on (turn) three and Brad got a run on the outside."
Bayne won his first pole of the season earlier Saturday and led the first 31 laps, besting his total for the entire season just minutes into the race. Bayne also won the "Dash 4 Cash" promotion for series regulars, pocketing $100,000.
Keselowski put himself in position for a weekend sweep after qualifying third for Sunday's race in Pocono.
Keselowski flew from Pennsylvania to Iowa about three hours before the race and flew right back to Pocono after the race, this time clutching perhaps his last trophy from the Iowa Speedway.
"This isn't a race that Penske circles and says we want to send a Cup driver to. It's just the way it works right now with our development drivers in the trucks series. The race is a conflict," Keselowski said. "But I've enjoyed the success I've had here."