VANCOUVER -- The CTV News Decision Desk has declared an NDP majority in B.C.'s 2020 election.

The party managed to push the BC Liberals out of several key ridings, earning a fresh mandate from voters to steer the province's ongoing response to the COVID-19 pandemic.

Concerns about coronavirus transmission prompted an unprecedented number of British Columbians to vote by mail this year, and Elections BC will need weeks to verify those ballots before delivering a final count. Some 478,000 vote-by-mail packages had been returned by Friday morning.

But the results from advanced polls and Saturday's vote are clear: John Horgan's gamble of calling a snap election in the middle of the global crisis paid off.

Speaking to supporters late Saturday night, Horgan celebrated his party's standing while stressing the importance of counting every ballot.

"While we wait for that final count to happen, I want to assure people that I'm going to keep the focus right where it belongs: on helping people get through this pandemic," he said.

The prospect of a more stable majority government was Horgan's justification for calling the snap election, which broke the party's confidence and supply agreement with Sonia Furstenau's Greens and was criticized by some as a cynical power-grab.

After thanking the NDP's supporters and all the candidates who ran in what was a highly unorthodox election campaign, Horgan once again cautioned that many of the challenges posed by the coronavirus crisis lie ahead.

"COVID-19 has turned our lives upside-down. None of us expected to be here, none of us expected that we'd have to endure the challenges we have over the past number of months," he said.

"But we are far from out of the woods. COVID-19 will be with us for the foreseeable future and we need to focus on making sure that we're keeping ourselves safe, and our families safe, and our communities safe."

BC Liberal Leader Andrew Wilkinson spoke earlier in the night, and while he didn't offer a concession, he did acknowledge the party's outlook was poor.

"With almost half a million mail-in ballots still to be counted, we don't know what the final seat count will be, and we owe it to every voter – every voter, no matter how they expressed their intention – to await the final results," Wilkinson added.

He thanked the party's many volunteers who rallied in response to the snap election, and everyone who supported the BC Liberals' platform, which included promises to temporarily axe the provincial sales tax and to allow private auto insurers to compete with ICBC.

"I'm proud to have presented a bold plan on behalf of the BC Liberal Party to move our party into the future," Wilkinson said. "We will see what the final count says."

The CTV News Decision Desk has already declared several formerly Liberal ridings for the NDP, including Boundary-Similkameen, Chilliwack, Coquitlam-Burke Mountain, Richmond-Queensborough, Surrey-Cloverdale and Langley.

The party is also leading in Langley East, a Liberal stronghold that was represented by former deputy premier Rich Coleman for 24 years. His replacement, Margaret Kunst, was one of several Liberal candidates who faced criticism from progressives during the campaign.

Kunst's decision to vote against a rainbow crosswalk in her role as Langley Township councillor raised questions about the party's commitment to the LGBTQ community.

North Vancouver-Seymour incumbent Jane Thornthwaite was also slammed for sexist comments she made about an NDP colleague during a recorded roast.

Outgoing NDP cabinet minister Judy Darcy said Saturday's results suggest the socially conservative wing of the Liberals has become a liability in parts of the province.

"Many of the candidates in the Liberal Party are associated with that social conservative side of the party, because this party is a big tent," Darcy said. "I think that increasingly there are many elements of the Liberal Party that are out of step with the views of British Columbians on a wide variety of issues, like homophobia and transphobia, (which) we've seen play out in some of those ridings."

Dianne Watts, former Surrey mayor and one-time candidate for BC Liberal leader, argued the province's largely praised response to the COVID-19 pandemic was also a major factor in the NDP's success.

Watts said Horgan had a "significant advantage" as a result of the news conferences he held with provincial health officer Dr. Bonnie Henry, but that much of the province's progress battling the crisis was the result of the co-operation that was required because of the NDP's minority status in the legislature.

"You have to remember, (voters are) satisfied with a minority government, they're satisfied with all three parties working together," Watts said. "That's what people wanted. That's what people were satisfied with."

While several ridings remained too close to call on Saturday night, the election results could rank among the NDP's best in B.C. electoral history. The party's top performance was in 1972, when Dave Barrett led the NDP to win 38 of what were then 55 ridings, or 69 per cent of the legislature.

CTV News is projecting Horgan's NDP could win as many as 55 of the province's current 87 seats, or 63 per cent. The BC Liberals finished the night leading in 29 seats and the Greens were projected to win 3.

Early results showed Furstenau's Greens ahead in West Vancouver-Sea to Sky, but the party failed to win former leader Andrew Weaver's old riding of Oak Bay-Gordon Head. Weaver left the party on prickly terms earlier this year to sit as an independent, and threw his support behind Horgan during the campaign.

Conservative Leader Trevor Bolin also came up short in his riding of Peace River North, falling thousands of votes behind BC Liberal incumbent Dan Davies despite a spirited campaign.