Boris Johnson remains on course for a Conservative majority of 28 seats - but the prime minister has lost ground in the past two weeks and a hung parliament could still be on the cards, according to YouGov.
The polling company, having analysed 105,000 voter interviews between December 4 and 10, predicts the Tories would win 339 seats, giving the governing party a majority of 28.
The result is down on the 68-seat majority that the same YouGov MRP exercise predicted Johnson would end up with only two weeks ago.
YouGov also said the surprise element of tactical voting and the tightening in the polls meant a hung parliament could not be ruled out.
The estimated result, if it materialises, would still give the PM the largest Tory majority since the 1980s, topping John Major's 21-seat margin of Commons control in 1992.
For Labour, the prediction of winning 231 seats would be its worst result for more than 30 years, YouGov said.
Jeremy Corbyn's party would fall from 262 in 2017 to 231, according to the newly-published results.
The Tories are predicted to take 43 per cent of the vote and Labour 34 per cent.
The same YouGov MRP modelling correctly called 93 per cent of seats in 2017.
If the YouGov predictions bear out, the SNP would win 41 seats and Liberal Democrats 15.
Nigel Farage's Brexit Party is predicted to be winless after Thursday's general election.
According to the poll, Plaid Cymru and the Green Party will see no change from four and one seats won in 2017 respectively.
"Our latest and final poll shows that a small Conservative majority is likely, with the Tories taking 22 more seats than in 2017 and Labour losing 31," Chris Curtis, YouGov's political research manager, said.
"This would be the best and worst results respectively for each party since the 80s.
"But the margins are extremely tight and small swings in a small number of seats, perhaps from tactical voting and a continuation of Labour's recent upward trend, means we can't currently rule out a hung parliament."