The Spaniards trailed 2-1 after 66 minutes before late goals from substitute Pablo Piatti and Sergio Canales earned them the win.
The Swiss, beaten 5-1 by the Spanish outfit two weeks ago in Valencia, saw Stephane Besle cancel out Piatti's opener in the 37th minute.
St Gallen's Philippe Montandon saw red before the hour mark after bringing down Jonas in the area.
Jonas saw his resulting penalty saved by St Gallen goalkeeper Daniel Lopar before Goran Karanovic gave the hosts the lead.
Piatti levelled matters in the 76th minute before Canales drove in the winner for Valencia four minutes from time.
The result has allowed Valencia to leapfrog Swansea into top spot after the Welsh outfit drew 1-1 at Kuban Krasnodor.
St Gallen are third in the pool, five points adrift of Swansea, who trail one point behind Valencia with two games remaining.
The visitors had the first real chance in the 27th minute when Canales' free-kick struck the far post with Lopar already beaten.
Valencia took the lead on the half hour mark with Canales seeing his direct free-kick hit the post again but Piatti was quick to tap in the rebound.
The hosts pulled level before half-time when Nater's close-range header from Montandon's assist beat Valencia goalkeeper Vicente Guaita.
The Spaniards could have gone back in front in the 57th minute but Jonas hit a weak spot-kick and Lopar kept it out.
The home side went ahead when Karanovic played a one-two with Ricardo Costa and hit a left-footed strike past Guaita.
Valencia came close to equalising in the 70th minute but Helder Postiga's attempt was denied by the woodwork.
The visitors were rewarded soon after when Postiga fed Piatti in the box and he smashed the ball towards the far post and out of Lopar's reach.
Canales had the last say as he got behind subsitute Daniel Parejo's cross and fired a right-footed shot from 25 yards past Lopar.