Brian Bowman, a privacy lawyer and chamber of commerce head, is Winnipeg's new mayor with 111,504 votes, or 47.5 per cent of the vote.
He said Wednesday night that he had mixed emotions about winning, given the shootings in Ottawa earlier in the day.
A gunman killed a reservist soldier at the National War Memorial in Ottawa before entering the Parliament buildings, where the assailant was killed by the sergeant at arms.
"The horrifying and the senseless death reminds us of the importance of this fundamental right that we were able to exercise today in our great country of Canada," Bowman told supporters.
"We should be mindful of these tragic events as we celebrate a day of democracy."
Bowman said voters wanted change and optimism.
"When the campaign started, we made the case for positive change in Winnipeg, that negative, old-school politics had no place in our campaign or in our city, that Winnipeg needed a new generation of leadership, and together, with all of you, we have done just that," he said in his acceptance speech.
Judy Wasylycia-Leis, a former New Democrat politician, was thought to be the front-runner after summer polls put her in the lead. A poll earlier this week showed she and Bowman in a virtual tie.
She fell short with 58,440 votes, or 25 per cent of the vote.
It's the second time Wasylycia-Leis has been beat in the race for mayor — she lost to outgoing mayor Sam Katz in 2010.
"Thank you for the bottom of my heart for what you stand for, what you believe in and what you will continue to fight for, this country and this city," she told disappointed supporters.
Robert-Falcon Ouellete, a young aboriginal candidate who seemed to have come out of nowhere, came in third with 36,823 votes, or 15.7 per cent.
Brandon's new mayor is Rick Chrest, who garnered 9,085 votes. He beat incumbent Shari Decter Hirst, who got 4,249 votes.
Chrest was deputy mayor for several terms.
Decter Hirst was praised in some quarters for playing a role in bringing commercial airline service to Brandon, and for the city's 2011 flood response that saw sandbags and dikes raised to hold back the swollen Assiniboine River.