The Conservatives have captured back both Calgary seats they had lost to the Liberals in 2015, including ousting former Liberal minister Kent Hehr, and turned the city entirely blue, CBC News projects.

Hehr's team confirmed to CBC News around 9 p.m. that Hehr had conceded and called Conservative Greg McLean to congratulate him on his victory.

"Greg is a classy guy, he always treated me with dignity and respect and I know he's going to do an excellent job for Calgary Centre," Hehr said in a concession speech around 9:45 p.m.

A few minutes later, McLean took to the stage at his campaign headquarters to cheers of "Greg, Greg," which changed to cheers of "Ruth, Ruth" as his wife joined him.

McLean took the seat with 56.9 per cent of the vote, defeating Hehr by 19,161 votes.

'So much going wrong in Ottawa': McLean

McLean has spent 20 years working in finance, and is the director of a private oil-and-gas technology company. In the late '80s and early '90s, he worked for Conservative cabinet ministers on files like the privatization of portions of Via Rail and CN Rail, and the transfer of airports to local airport authorities. He and his wife have four sons.

He said he was proud to have turned Calgary Centre back into a Conservative riding.

"When I started this, I did not foresee this outcome. It's going to be difficult being in opposition when you see so much going wrong in Ottawa," he said, adding that the rest of Canada needs to understand Alberta's needs.

"We will chip away at this."

Hehr vows to continue work for 'a better city'

Hehr, who was once minister of veterans affairs and later took on the sports and persons with disabilities portfolio, had stepped down from the Liberal cabinet after allegations of sexual harassment.

On Monday night, Hehr thanked his team, wife Deanna Holt and mother Judy Hehr for their support in what he said can be a tough and mean-spirited line of work.

"I've had 12 years in this business and I've gotten to share my life with people," he said.

"A couple hours ago this campaign came to an end. But I know the work for a better city, a better province, a better country…. I will keep working at it, I know you all in this room will keep working at it, and, my goodness, my heart is so full."

The Conservatives swept all 10 of Calgary's seats on Monday, including (from left) incumbent Len Webber in Calgary Confederation, incumbent Michelle Rempel in Calgary Nose Hill and incumbent Ron Liepert in Calgary Signal Hill. (Left: Len Webber/Facebook. Middle: CBC. Right: Conservative Party of Canada)

Holt followed Hehr's concession speech with a plea for politeness and rationality in politics.

"We now have a new MP and my ask is that we treat him the way we wish Kent had been treated," she said.

Conservatives' Sahota takes Calgary Skyview

The riding was one of two in Calgary that the Liberals pried away from the Tories in the 2015 election, marking the first time the party had picked up seats in the city since 1968.

The other was Calgary Skyview, where Darshan Kang won the seat as a Liberal in 2015. He resigned from the party two years later after sexual harassment allegations and didn't run again.

Despite a last-minute visit to Calgary Skyview by Justin Trudeau on Saturday night, Liberal Nirmala Naidoo lost out there to Conservative Jag Sahota, according to CBC News.

Sahota operates her own law practice in northeast Calgary, and volunteers with a number of organizations including the Calgary Immigrant Women's Association and the Elizabeth Fry Society.

Lawyer Jag Sahota won back Calgary Skyview for the Conservatives. Darshan Kang won the seat as a Liberal in 2015, but he resigned from the party two years later and didn't run again. (Jag Sahota/Facebook)

Calgary Mayor Naheed Nenshi said the city's results showed Albertans' frustrations.

"The issue is that the economy across the country is firing on all cylinders except in Alberta, which should be the engine of the country," said Nenshi.

Other winners

While final vote counts likely won't be out for a few days, these are the candidates that have been elected in Calgary, according to CBC News projections:

Conservative Greg McLean in Calgary Centre.

Conservative Len Webber in Calgary Confederation (incumbent).

Conservative Jasraj Singh Hallan in Calgary Forest Lawn.

Conservative Bob Benzen in Calgary Heritage (incumbent).

Conservative Stephanie Kusie in Calgary Midnapore (incumbent).

Conservative Michelle Rempel in Calgary Nose Hill (incumbent).

Conservative Pat Kelly in Calgary Rocky Ridge (incumbent).

Conservative Tom Kmiec in Calgary Shepard (incumbent).

Conservative Ron Liepert in Calgary Signal Hill (incumbent).

Conservative Jag Sahota in Calgary Skyview.

All of those candidates were leading with a majority of votes in their ridings.

The Liberals were shut out of Alberta as a whole, with Conservative candidates claiming victory in 33 of the 34 ridings. The only exception was Edmonton-Strathcona, which stayed in NDP hands.

All 16 ridings in southern Alberta have gone to Conservatives. NDP candidate Heather McPherson remains in the lead in Edmonton-Strathcona, but she is the only non-Conservative candidate in the running right now across the province: <a href="https://t.co/A82T0GcLvo">https://t.co/A82T0GcLvo</a> <a href="https://twitter.com/hashtag/elxn43?src=hash&ref_src=twsrc%5Etfw">#elxn43</a> <a href="https://twitter.com/hashtag/cdnpoli?src=hash&ref_src=twsrc%5Etfw">#cdnpoli</a> <a href="https://t.co/z0s5r9YmJH">pic.twitter.com/z0s5r9YmJH</a> —@CBCCalgary

Other southern Alberta results include:

Conservative Blake Richards in Banff-Airdrie (incumbent).

Conservative Martin Shields in Bow River (incumbent).

Conservative Rachael Harder in Lethbridge (incumbent).

Conservative Glen Motz in Medicine Hat-Cardston Warner (incumbent).

Conservative John Barlow in Foothills (incumbent).

Conservative Earl Dreeshen in Red Deer-Mountain View (incumbent).

Liberals win just 14% of popular vote in Alberta

In Calgary, as of 11:30 p.m., Conservatives had 69 per cent of the vote, Liberals had 15 per cent, NDP had 9 per cent, Greens 4 per cent, and the People's Party 2 per cent, with 2,932 of 2,999 polls (98 per cent) reporting.

Across Canada, Liberals had 33 per cent of the vote while Conservatives had 35 per cent, with 95 per cent of polls reporting.

While most voters cast their ballots Monday, many Albertans also voted early this year. One in five eligible voters in Alberta (578,219 people) cast their ballots in the advance polls between Oct. 11 and Oct. 14, a 59 per cent increase from 2015's federal election.

Voters lined up outside a polling station in Calgary Centre on Monday evening before polls closed. (Anis Heydari/CBC)

Voters at one Calgary Centre polling station expressed discontent with the tone of the campaign.

Rick Bennetts told CBC News after casting his ballot that he feels there was "too much negativity and no real solid platforms from anybody."

"There was a lot of mud-slinging and we didn't seem to get to the bottom of the matter. I felt that it was left to myself to get the information I needed to make an appropriate vote," Karen Meades said.

One Calgary Conservative who has lost their seat — albeit not in Calgary — is George Canyon. The Calgary resident, and long-time anthem singer for the NHL Flames, ran in his home riding of Central Nova in Nova Scotia. CBC News has projected Canyon will lose to Liberal incumbent Sean Fraser.

Liberal minority

Throughout the 40-day campaign, Conservative Leader Andrew Scheer and Liberal Leader Justin Trudeau have been in a tight race. Right up to election day, polls suggested it was likely neither party would capture the 170 seats needed to form a majority government.

During his acceptance speech, Trudeau reached out to voters in Alberta.

"Know that you are an essential part of this great country. I've heard your frustration and I want to be there to support you. Let us all work hard to bring our country together," he said.

Scheer said he spoke with Trudeau to congratulate him, but said the results "put Justin Trudeau on notice."

Political scientist Anthony Sayers said he's cautiously optimistic the parties can work together on issues important to Albertans.

"I don't think a minority Liberal government is the worst possible outcome for Albertans. In fact … it's a period where all sorts of things are open for negotiation," Sayers said. "We have a government that purchased a pipeline. It needs to make that pipeline work."

As of 11:30 p.m., CBC News was projecting the Liberals elected in 156 seats, the Conservatives in 122, the Bloc in 32, the NDP in 24, the Greens in 3 and one Independent.

The Calgary Chamber of Commerce released a statement congratulating Trudeau on his victory.

"A minority government is an opportunity for all our elected leaders to reach across the aisle and demonstrate just how powerful the 'AND' conversation can be. Let's give Canada more Canada," Chamber president and CEO Sandip Lalli said.

Another election, this one unofficial, took place across the country today — the student vote. More than 1.1 million elementary and secondary school students cast ballots in the mock vote, which is hosted by CIVIX, a non-partisan charity dedicated to strengthening democracy through citizenship education, and in partnership with Elections Canada.

Students also elected a Liberal minority.

In Alberta, 46 per cent of students voted Conservative, leading to a hypothetical 30 seats for the party. Just 13 per cent of students voted Liberal, with one seat for the party in Edmonton Mill Woods, while 21 per cent voted NDP, with two seats in Calgary Forest Lawn and Calgary Skyview.