Hernando de Soto, a liberal economist, and leftist professor Pedro Castillo, have both edged to the front of the pack following late gains in support, according to the latest opinion poll.
Peru has voted for a new president, in its deadliest week yet of the Covid-19 pandemic, as polling queues vied with lines of people seeking oxygen supplies for infected loved ones.
Some 25 million people were meant to vote – which is mandatory – the day after Peru reported its highest-ever daily toll in the Covid-19 pandemic.
There was little enthusiasm for any of the candidates and many electors said they turned out, despite fear of infection, merely to avoid the fine of about $24 (88 sol) for not voting.
"We are afraid of getting infected, because this pandemic is terrible, but at the same time I have to vote," Nancy Retamozo, 58, told while queuing at a school in a Lima suburb.
Maximo Curi, 68, said he would not have come if it was not for the risk of a fine, looking worried as he complained that in line "they are not maintaining the one-and-a-half metre distance" required between people.
Peruvian authorities on Saturday reported 384 fatalities in 24 hours – the third daily record in a week – bringing the overall toll to more than 54,600 in the country of 33 million people.
Over 11,200 new daily cases were reported, adding to another 1.6 million to date.
Peru's government decided to press ahead with elections as South America battles a surge in infections fueled by new virus variants believed to be more contagious.
Six of Peru's 18 presidential candidates have contracted the virus, including former football goalkeeper George Forsyth, polling in the top six, who was forced to cut short his final week of campaigning.
Thousands of polling stations opened their doors at 7.00 am (1200 GMT), and will stay open for 12 hours – four more than usual in a bid to prevent voters amassing.
READ MORE: Peru's Merino quits as interim president
'It is unfair'
As some Peruvians lined up to vote, others queued for oxygen refills for loved ones battling coronavirus infection.
"It is unfair, because instead of being there in the voting queue, we had to get up at daybreak to fetch oxygen," Micaela Lizama, 38, told AFP in Lima.
Mario Tinoco, 52, said he was willing to risk the fine for not voting because "I have to get oxygen, that is the main thing for me."
Despite the pandemic outlook, election campaigning had continued until Thursday, with candidates drawing hundreds of followers to often boisterous rallies.
With aspirants across the political spectrum vying for the presidency, there is no clear favorite.
The highest-polled candidate – Yonhy Lescano of the center-right – had 10 percent of voter intention a week ago.
An Ipsos poll showed only four percentage points between Lescano and the seventh-place candidate, meaning Sunday's first election round will likely be inconclusive.
The two candidates with the most votes will then compete in a runoff on June 6.
Close behind Lescano were leftist anthropologist Veronika Mendoza, conservative economist Hernando de Soto, Forsyth and corruption-accused Keiko Fujimori – daughter of former president Alberto Fujimori.
Also in the running were ultra-conservative celibate Catholic Rafael Lopez Aliaga and far-left unionist Pedro Castillo.
This will be the country's "most fragmented election" ever, according to Ipsos Peru chief Alfredo Torres.
Almost a third of voters are undecided.
Poverty, political upheaval
The uncertain outcome has the markets worried, and the Peruvian sol plunged to a record low 3.8 to the US dollar last month, adding to the future president's full in-tray.
Peru has been in recession since the second quarter of last year after coronavirus lockdown shuttered businesses and crippled the all-important tourism sector.
Its economy contracted more than 11 percent in 2020, four million people lost their jobs and another five million dropped into poverty.
The country has also been convulsed by political upheaval driven by claims of corruption at the highest echelons.
This will be Peru's fifth president in three years after three fell within days of each other in November 2020 amid protests that left two dead and hundreds injured.
The first election results should be known around 11:30 pm on Sunday (0430 GMT Monday).
Peruvians are also voting for 130 members of congress.