Andre-Pierre Gignac scored a last-minute winner as Marseille beat Montpellier 3-2 to climb above Paris Saint-Germain into second place in Ligue 1.