The 'Battle of the Saints' ended with victory for the home side as St Mirren beat 10-man St Johnstone 4-3 in a Scottish Premiership thriller at St Mirren Park.