Hearts defeated St Mirren 3-1 in the Scottish Premiership tonight.