Jason Kenney has capped his three-year goal of uniting Alberta's political right, leading his United Conservative Party to a majority election win over the province's first NDP government.

"Today Albertans have chosen hope over fear, and unity over division," a jubilant Kenney told supporters in Calgary on Tuesday night. "They have chosen free enterprise values over the politics of resentment.

"Friends, tonight the silent majority has spoken."

Created in 2017 through a merger of the Wildrose and Progressive Conservative parties, the UCP is projected to win or be leading 63 of 87 seats.

Equalization, pipelines in Kenney's sights

In his victory speech, Kenney vowed to get a "fair deal" with Ottawa on equalization payments and to fight other provinces and the federal government for pipelines.

He also promised to combat "foreign-funded special interests" such as the Tides Foundation and the David Suzuki Foundation, which he accused of leading "a campaign of economic sabotage" against Alberta.

"Your days of pushing around Albertans with impunity just ended," Kenney said as the crowd roared and chanted his name.

'Your days of pushing around Albertans with impunity just ended.' 0:59

Kenney thanked Rachel Notley for her "tremendous public service."

Kenney told the people who did not vote for the UCP that he respects and honours their choice.

"We will strive to be a government for all Albertans, not just those who voted for us," he said.

Notley to lead Official Opposition

Notley's NDP is projected to be elected or leading in 24 seats, down from 52, and will become Alberta's Official Opposition. The majority of NDP support was concentrated in Notley's home base of Edmonton.

The Alberta Party and the Alberta Liberals were both shut out, electing none of their candidates. The Alberta Party had three seats in the last legislature; the Liberals had one.

NDP Leader Rachel Notley and her husband Lou Arab leave after giving a concession speech in Edmonton on Tuesday. (Jason Franson/The Canadian Press)

Notley confirmed she intends to carry on and lead the Official Opposition.

"It has been an incredible honour to serve as a premier, and it will be an honour to serve as leader of Her Majesty's loyal opposition," Notley told supporters in Edmonton.

Notley committed to fighting for social issues, such as moving more children out of poverty. She also vowed that the NDP will stand up to bigotry and support the rights of LGBTQ Albertans.

"Know you will always have a champion in me and in the Alberta NDP and a champion in the Opposition."

After loss in Alberta, Notley says the NDP made 'tremendous progress' in a challenging time. 1:08

The NDP lost most of the seats it won in rural areas in 2015. Several cabinet ministers went down to defeat, including Energy Minister Marg McCuaig-Boyd in Central Peace-Notley, Children's Services Minister Danielle Larivee in Lesser Slave Lake, and Shaye Anderson in Leduc-Beaumont.

In Calgary, the UCP was elected or leading in 23 of 26 ridings. The NDP won three seats in Calgary: Kathleen Ganley in Calgary-Mountain View, Irfan Sabir in Calgary-McCall, and Joe Ceci in Calgary-Buffalo. Shannon Phillips was leading by fewer than 400 votes in Lethbridge-West.

Kenney, who was a cabinet minister in Stephen Harper's Conservative government, won the leadership of the Alberta Progressive Conservative party in 2016 before leading the PCs into a successful 2017 merger with the Wildrose Party. That same year, he won the UCP leadership handily in a contest later marred by controversy.

Liberals, Alberta Party shut out

The election was a disappointment for the Alberta Party and the Liberal Party.

Liberal Leader David Khan lost in Calgary-Mountain View, the party's only seat in the legislature.

"The political pendulum has swung away from moderate, progressive politics toward a more conservative position," Khan said. "That is the will of the people."

Alberta Liberal Party Leader David Khan lost in Calgary-Mountain View, the party's only seat in the legislature. (CBC)

In his concession speech, Khan urged Kenney to remove UCP members who have expressed intolerant views.

"With your victory comes great responsibility. You will be the premier for all Albertans. This includes the vulnerable, those with special needs and the LGBTQ2S+ community," he said. "Do not abuse your authority. Be fair and inclusive in your decisions."

WATCH | See what all 4 leaders had to say to supporters after Tuesday's election

Alberta's four major party leaders speak on election night 1:27

Alberta Party Leader Stephen Mandel finished third in Edmonton-McClung. Greg Clark, the party's former leader, lost his seat in Calgary-Elbow to Doug Schweitzer of the UCP.

Despite the loss, Mandel said he was optimistic about the future of the Alberta Party.

"I really believe, deeply, this is the party of the future in this province," Mandel told supporters.

"When people get away from polarization and start looking at what a party can be, and what our province can be, hopefully, they will begin to look in a different way and see that the Alberta Party is the answer."

About 500 Calgarians attend a pro-pipeline rally on Monday, one day before Alberta's election delivered a majority government to the United Conservative Party. (Mike Symington/CBC)

The premier-designate will take office with a cloud of allegations from the UCP leadership race of 2017 hanging over his head

Last week, CBC News revealed fraudulent emails were used to cast ballots for Kenney, and that the matter has come to the attention of the RCMP who have interviewed at least one person whose name was attached to a fake email address. Kenney has defended the voting process used during the party's internal campaign.

Peter Singh, who was elected for the UCP in Calgary-East, had his business searched by the RCMP on Thursday. His lawyer confirmed the search warrant was executed in connection to allegations of voter fraud during the leadership campaign.

WATCH | Jason Kenney's full victory speech

The UCP leader is projected to form a majority government, capping his three-year goal of uniting Alberta's political right. 30:15

Want a closer look at how the night unfolded?

Take a look back at the live election coverage from Tuesday night.

10:26 p.m. MT

Jason Kenney continues his victory speech, taking aim at what he calls "foreign-funded special interests" who are blocking Alberta's energy industry.

"Tonight, all of that changes," he said. "Tonight, Albertans have decided that we will no longer passively accept the campaign of defamation against the industry. Let us unite, together, to unleash Canada's full economic potential."

Supporters chant: "Build that pipe. Build that pipe."

10:27 p.m MT

Shaye Anderson of the NDP loses his Leduc-Beaumont seat to Brad Rutherford of the UCP.

10:18 p.m. MT

"Friends, today our great province has sent a message to Canada and the world. Alberta is open for business," premier-designate Jason Kenney told the crowd at UCP headquarters in Calgary.

10:12 p.m. MT

Prime Minister Justin Trudeau has congratulated Jason Kenney on his party's victory in the provincial election.

"Albertans have chosen to elect a majority government led by the United Conservative Party," Trudeau said in a statement.

"On behalf of the Government of Canada, I offer my sincere congratulations to Jason Kenney who will have the honour and privilege to serve as premier."

He adds: "I look forward to working with the provincial government to create good, middle class jobs, build infrastructure, and grow the businesses and industries at the heart of Alberta's prosperity so the province can remain competitive in our changing economy. I also thank Rachel Notley for her years of service as premier."

10:10 p.m. MT

Three more Edmonton NDP candidates are re-elected: Nicole Goehring in Edmonton-Castle Downs, Rod Loyola in Edmonton-Ellerslie and Thomas Dang in Edmonton-South. The NDP's Marie Renaud keeps her seat in St. Albert.

10:08 p.m. MT

Rachel Notley confirms she will remain as leader of the Official Opposition.

"It has been an incredible honour to serve as premier and it will be an honour to serve as leader of Her Majesty's Loyal Opposition," she tells supporters in Edmonton.

10:06 p.m. MT

The UCP's Dave Hanson is re-elected in Bonnyville-Cold Lake-St. Paul.

10:01 p.m. MT

The UCP's Peter Singh is projected to win a seat in Calgary-East. Singh's business was the target of an RCMP search last week. His lawyer confirmed the warrant was executed in connection with the investigation into allegations of voter fraud during the party's leadership campaign.

10 p.m MT

The NDP's Debbie Jabbour loses her seat in Peace River to Dan Williams of the UCP. UCP candidate Nate Glubish wins in Strathcona-Sherwood Park, a seat that had been held by the NDP. UCP candidate Martin Long wins West Yellowhead, a seat also held by the NDP.

Maria Fitzpatrick of the NDP loses Lethbridge-East to Nathan Neudorf of the UCP.

Dale Nally of the UCP wins in Morinville-St. Albert.

9:56 p.m. MT

NDP Leader Rachel Notley opens her concession speech with a joke to cut the tension: "I am very glad that we expanded Alberta's craft beer industry."

The loss to the UCP "isn't the result we hoped for," Notley tells a raucous crowd in Edmonton.

"As I look out at all of you, I am filled with an enormous sense of gratitude and pride. I have gratitude for my team, a more dedicated group of public service, you will never find. To all of them — particularly those of them not returning to the legislature — you have my eternal thanks."

United Conservative Party supporters celebrate in Calgary on April 16, 2019. Kenney retained his seat of Calgary-Lougheed in the Alberta election. ( Jeff McIntosh/The Canadian Press)

9:52 p.m. MT

The UCP wins both Airdrie ridings: Angela Pitt in Airdrie-East and Peter Guthrie in Airdrie-Cochrane.

9:47 p.m. MT

The NDP's Jessica Littlewood loses her seat in Fort Saskatchewan-Vegreville to the UCP's Jackie Armstrong-Homeniuk.

9:45 p.m. MT

UCP candidate Leela Aheer is projected to win Chestermere-Strathmore, defeating Freedom Conservative Party Leader Derek Fildebrandt.

9:42 p.m. MT

"Tonight Albertans made their voice clear, they voted for change," former Alberta Party leader Greg Clark says in Calgary.

"I want to say a very special thank you to Rachel Notley. She governed Alberta with honour."

9:42 p.m MT

NDP cabinet minister Danielle Larivee loses Lesser Slave Lake to Pat Rehn of the UCP.

9:41 p.m. MT

"We have to be very proud," Alberta Party Leader Stephen Mandel tells supporters after it becomes clear he won't win in Edmonton-McClung.

"We went from just over two per cent to over 10 per cent in the polls and it is still climbing. It was a very polarized situation … and it made it difficult for us. We have the most amazing candidates. They were an incredible group of people that I was proud to work with."

9:40 p.m. MT

So far, the seat breakdown has the UCP winning or leading in 62 seats, the NDP in 25. There are no Alberta Party or Liberal candidates on the board.

9:33 p.m. MT

Alberta Party leader Stephen Mandel will not win a seat in his riding of Edmonton-McClung.

9:27 p.m. MT

More UCP wins outside of the major centres: Nathan Cooper in Olds-Didsbury-Three Hills, Jackie Lovely in Camrose, Joseph Schow in Cardston-Siksika, Devin Dreeshen in Innisfail-Sylvan Lake, R.J. Sigurdson in Highwood, Tracy Allard in Grande Prairie, Richard Wilson in Maskwacis-Wetaskiwin, and Roger Reid in Livingtone-McLeod.

The NDP has won Edmonton-Rutherford. Candidate Richard Feehan was an NDP caucus chair and has taught social work at the University of Calgary. He beat out UCP candidate Hannah Presakarchuk, a registered nurse.

9:28 p.m. MT

Another NDP cabinet minister is defeated: Energy Minister Marg McCuaig-Boyd loses in Central Peace-Notley to the UCP's Todd Loewen.

9:23 p.m. MT

UCP candidate Prasad Panda, who served as the party's energy critic, has won a seat in Calgary-Edgemont. The UCP's Rebecca Schulz has unseated former NDP MLA Graham Sucha in Calgary-Shaw.

9:22 p.m. MT

The NDP is projected to win in Edmonton-Meadows, with candidate Jasvir Deol beating UCP candidate Len Rhodes.

9:13 p.m. MT

NDP incumbent Lori Sigurdson has won her seat in Edmonton-Riverview. Sigurdson served as minister of advanced education, as well as labour, and seniors and housing.

9:11 p.m MT

NDP Leader Rachel Notley is re-elected in Edmonton-Strathcona.

9:10 p.m. MT

In Edmonton-Glenora, former NDP health minister Sarah Hoffman has been re-elected. The NDP has also held on to Edmonton-Beverly-Clareview, where Deron Bilous was re-elected.

9:08 p.m. MT

UCP's Jason Nixon is re-elected in Rimbey-Rocky Mountain House-Sundre.

9:06 p.m. MT

The NDP loses its two seats in Red Deer to the UCP. Adriana LaGrange is projected to win in Red Deer-North, Jason Stephan in Red Deer-South.

In Edmonton-Gold Bar, voters have elected NDP candidate Marlin Schmidt. Schmidt was minister of advanced education under Rachel Notley.

9:05 p.m. MT

UCP incumbent Ric McIver has won his riding in Calgary-Hays. The party has also won the ridings of Calgary-Fish Creek, Calgary-Lougheed, Calgary-North West, Calgary-Shaw, Calgary-South East and Calgary-West.

An NDP supporter in Edmonton watches as the polling numbers begin to roll in on Tuesday, April 16, 2019. Kenney's United Conservatives won many rural seats. (Jason Franson/The Canadian Press)

9:03 p.m. MT

NDP cabinet minister Oneil Carlier loses his seat in Lac Ste. Anne-Parkland to Shane Getson of the UCP.

9:02 p.m. MT

In the ridings surrounding Edmonton, the UCP has won Spruce Grove-Stony Plain, where Searle Turton had a substantial lead over NDP incumbent Erin Babcock. The UCP is also ahead in Strathcona-Sherwood Park, with Nate Glubish ahead of NDP candidate Moira Váne. The UCP is also ahead in Morinville-St. Albert.

9 p.m. MT

NDP candidates elected in Edmonton: David Shepherd is projected to win in Edmonton-City Centre. Janis Irwin is expected to win in Edmonton-Highlands-Norwood.

8:58 p.m. MT

The UCP has kept its two seats in Fort McMurray: Laila Goodridge is re-elected in Fort McMurray-Lac La Biche and Tany Yao is re-elected in Fort McMurray-Wood Buffalo.

8:55 p.m. MT

UCP leader Jason Kenney wins seat in Calgary-Lougheed, CBC projects.

8:51 p.m. MT

More UCP candidates elected: Garth Roswell in Vermilion-Lloydminister-Wainwright, Nathan Horner in Drumheller-Stettler, Mark Smith in Drayton Valley-Devon, Grant Hunter in Taber-Warner, Travis Toews in Grande Prairie-Wapiti, Ron Orr in Lacombe-Ponoka, Glenn van Dijken in Athabasca-Barrhead-Westlock, and Drew Barnes in Cypress-Medicine Hat.

8:45 p.m. MT

More Edmonton results coming in: In Edmonton Castle-Downs, NDP candidate Nicole Goehring is ahead of UCP candidate Ed Ammar. In Edmonton South-West, a new riding created in this election, UCP candidate Kaycee Madu is leading over NDP candidate John Archer.

It appears to be a close race in Edmonton-Meadows, with NDP candidate Jasvir Deol leading UCP candidate Len Rhodes. Rhodes, the former president and CEO of the Edmonton Eskimos, was hand-picked by Kenney.

8:36 p.m. MT

Former Alberta Party Leader Greg Clark, who is running in Calgary-Elbow, said he thinks the party will surprise people with how many votes it brings in.

"I don't think the divisiveness we saw in this campaign was good for Alberta, I do think it brought people to our party," he said.

8:36 p.m. MT

The UCP's Michaela Glasgo is projected to win in Brooks-Medicine Hat.

8:33 p.m. MT

The UCP is leading in 35 of 48 ridings reporting so far, and cheers fill UCP headquarters in Calgary as the results begin to roll in.

8:31 p.m. MT

Voting has been extended in Central Peace-Notley until 9:10 p.m. because two polling stations were late opening Tuesday morning.

8:28 p.m. MT

Close race in Edmonton-McClung: NDP incumbent Lorne Dach has 36 votes, the UCP's Laurie Mozeson has 27 and Alberta Party leader has 23 votes. Only one of 81 polls reporting.

8:22 p.m. MT

The UCP is currently ahead in conservative strongholds Drumheller-Stettler, Brooks-Medicine Hat, Innisfail-Sylvan Lake, and Highwood. The party is also ahead in Lesser Slave Lake, a riding currently held by the NDP.

8:15 p.m. MT

First polls to report: Mark Smith, the UCP's embattled candidate in Drayton Valley-Devon, is ahead with 178 votes, to 35 for the NDP's Kieran Quirke.

One riding that has yet to close is Calgary-Acadia. The poll opened 33 minutes late due to a lockdown at the school, so that station will remain open until 8:33 p.m.

8 p.m. MT

The polls have now closed and the votes are being counted in the 2019 Alberta election. You can follow our live coverage here from our team of CBC reporters as the results begin to stream in.