Canadian leaders campaigned in battleground districts on Saturday, two days before a vote electrified by US President Donald Trump's threats, with Prime Minister Mark Carney favoured after assuring voters he can stand up to Washington.
A victory for Carney's Liberal Party would mark one of the most dramatic turnarounds in Canadian political history.
On January 6, the day former prime minister Justin Trudeau announced his plans to resign, his Liberals trailed the Conservatives by more than 20 points in most polls, and Tory leader Pierre Poilievre looked certain to be Canada's next premier.
But in the weeks after that, Trump rolled out a barrage of stiff tariff policies while repeatedly talking about absorbing Canada into the United States.
Outraged Canadians have since booed the American anthem at sporting events and cancelled US travel plans.
When Carney replaced the unpopular Trudeau on March 14, he anchored his message squarely on the threats from Trump.
The 60-year-old, who has never held elected office but led the central banks of Canada and Britain, has argued his global financial experience makes him the ideal candidate to defend Canada against Trump's volatile trade policies.
The prime minister spent the campaign's second to last day in the crucial province of Ontario, making stops in communities near Toronto that have previously swung between Liberal and Conservative.
The Trump factor and the Trudeau-for-Carney swap unsettled Poilievre, a 45-year-old who has been in parliament for two decades.
But the Conservative leader has tried to keep attention on issues that drove anger towards the Liberals during Trudeau's decade in power, particularly rising living costs.
He was campaigning in the west coast province of British Columbia on Saturday before an evening rally in Ontario.
Poilievre has also criticised Trump, but blamed poor economic performance under the Liberals for leaving Canada vulnerable to US protectionism.
Polls project a Liberal government, but the race has tightened in its final days.
A record 7.3 million of Canada's 28.9 million eligible voters cast early ballots over the Easter weekend, a 25 percent increase compared to 2021.
The winner should be known hours after polls close on Monday. (AFP)