The Survation poll for the Daily Record puts support for the SNP at 39 per cent, and Labour at 29 per cent.
The Tories are on 26 per cent and the Lib Dems on 6 per cent according to the survey, which was carried out in the last 36 hours of the campaign.
Analysis by polling expert Professor John Curtice found that if there was a uniform swing across the country, the SNP would hold 43 seats, down from 56 in 2015.
Labour would win six seats, up from one in 2015, while the Tories would win seven and the Lib Dems three.
The poll also suggested a drop in support for independence with 61 per cent of voters saying they would vote No, up from 55 per cent at the time of the 2014 independence referendum.
Survation polled 1,001 Scots by phone.
Meanwhile, a UK-wide poll by BMG gives the Tories a 13-point lead over Labour.
It put the Conservatives on 46 per cent, Labour on 33 per cent, the Liberal Democrats on eight, Ukip on five, the SNP on four and the Greens on three, while Plaid Cymru and other parties are on one each.
The Herald reported that if repeated across the country this would leave the Tories with 380 seats, up 49 from 2015, while Labour would have 190, a loss of 42 seats.
The SNP would secure 55 seats, one down from 2015, while the Lib Dems would have five, down three from the eight they won in 2015.
BMG carried out the survey of 1,000 adults over the last two days.