Luis Palma struck a late winner as champions Celtic twice came from behind to see off St Mirren 3-2 on the final day of the Scottish Premiership season.

It was a day of celebrations at Celtic Park for Brendan Rodgers' side, who wrapped up their third successive domestic title in midweek.

However, St Mirren threatened to spoil the party when Mark O'Hara fired them in front after just seven minutes.

Top scorer Matt O'Riley equalised for the hosts in the 21st minute, but they fell behind again just five minutes later when O'Hara doubled his tally from the penalty spot after Stephen Welsh fouled Toyosi Olusanya.

Kyogo Furuhashi levelled for Celtic before half-time, and the Hoops completed the turnaround with Palma scored the winner with four minutes remaining.

Rodgers' side finished eight points clear of second-place Rangers, who were held to a 3-3 draw by Hearts.

Despite falling behind to Lawrence Shankland's strike, goals from Ross McCausland, Todd Cantwell and Fabio Silva seemingly had the visitors on course for a comfortable win at Tynecastle.

However, there was to be a late twist with Dexter Lembikisa pulling a goal back in the 82nd minute, before Kyosuke Tagawa struck deep into stoppage time to rescue a point for the hosts.

There was also nothing to separate Dundee and Kilmarnock, who drew 1-1 in the other match on the final day.

Luke McCowan cancelled out Gary Mackay-Steven's earlier effort, though the Dundee captain squandered a glorious opportunity to complete the turnaround when he missed a penalty two minutes from time.