It was the sixth career victory and first this season for Hunter-Reay, who brought home a victory for the man who brought the historic but financially troubled Milwaukee track back to IndyCar — car owner Michael Andretti, who served as the race promoter.
It wasn't the first triumph at Milwaukee for Hunter-Reay, who won the 2004 race at the track in the now-defunct Champ Car Series.
Kanaan was second, followed by James Hinchcliffe of Oakville, Ont., Oriol Servia and E.J. Viso. Alex Tagliani of Lachenaie, Que., was seventh.
The start of the race was delayed about an hour and a half because of rain.
Scott Dixon, who came into the race second in the points, had to serve a drive-through penalty for jumping a restart and finished 11th. He questioned the penalty afterward.
Last year's Milwaukee winner, Dario Franchitti, started from pole position and dominated the early stages of the race. But he fell back in the field and then spun out and hit the wall on lap 195.
Points leader Will Power finished 12th.
It was a boost for the Milwaukee track, which has been hosting racing since 1903 but originally was left off the 2012 IndyCar schedule after not hosting any major racing events in 2010 and drawing a lacklustre crowd for IndyCar last year.
Milwaukee was put back on this year's schedule after Andretti agreed to serve as the race's promoter — and Andretti announced just before Saturday's race that the event would return in 2013.
Despite the race being a late addition to the schedule — and then the morning rain delay — the race drew a significantly better crowd than last year.
Franchitti was untouchable in the early stages of the race, leading the first 60-plus laps before making his first pit stop. The race went green until Simona de Silvestro spun on lap 67, bringing out a caution.
Franchitti was shuffled back to fourth on the restart, after a few drivers were on pit road when the caution came out — including Viso, who took the lead on the restart.
Justin Wilson then blew an engine on lap 94, pulling to the inside wall and scrambling to get out of the car when it briefly caught fire. It was a tough reversal of fortune for Wilson, who won last week at Texas.
After a round of pit stops under caution, Helio Castroneves — who didn't pit after Wilson's incident — took the lead. Then came the first significant crash of the day, when Takuma Sato and James Jakes tangled.
Castroneves continued to lead as the race restarted, as Dixon had to serve a drive-through penalty for jumping an earlier restart, on lap 103. Franchitti continued to fade, barely hanging inside the top 10.
Hunter-Reay then passed Castroneves for the lead on lap 142, and Viso got past Castroneves for second. Castroneves made it all the way until lap 155 before pitting, hoping to make it to the end of the race without stopping.
The race then briefly went under caution on lap 182, after some raindrops fell on the track.
Franchitti's day ended when he spun and hit the wall on lap 195. Franchitti tangled with Ryan Briscoe shortly before he spun, and said afterward that contact might have broken something on his car.