Widnes winger Pat Ah Van went over for a pair of tries to stun St Helens and give the Vikings their first home win of the Betfred Super League season after a 16-14 triumph.
Ah Van two tries either side of half-time ensured Widnes took the points and eased the pressure on under-fire boss Denis Betts.
The defeat for Saints leaves them still searching for back-to-back wins in Super League and puts them back to square one following the defeat of table-toppers Castleford last Monday.
Joe Mellor grabbed the first try of the night when he got on the end of Rhys Hanbury's inside ball that deflected fortuitously off Saints back-rower Zeb Taia.
Tom Gilmore struck the conversion but that converted score was soon cancelled out by Theo Fages burrowing under and over for a solo score.
The tit-for-tat scoring continued as Widnes marched up the other end and off the back of a penalty, Ah Van dived over in the corner to finish in style.
The Vikings were excellent value for the 12-6 lead and they should have registered more points minutes later, after being camped in Saints' territory, but they couldn't find the decisive pass or coughed up the ball unnecessarily.
Too many times the home side pressed the self-destruct button with poor errors with ball in hand and it came back to haunt them as Saints hit back through Matty Smith.
St Helens' forward pack laid the platform with some dominant runs and when Smith got hold of it from close range, the Vikings defenders expected a pass but the ex-Widnes scrum-half went alone.
Mark Percival knocked over the conversion from in front to level it at the break.
It was the visitors who struck first after the break through a Percival penalty goal as Matty Whitley interfered in the ruck.
Saints spurned the opportunity of another routine two points as Jordon Johnstone was cited for extras at the play the ball but they could not find the try they needed.
Chris Dean went close for Widnes as he got on the end of Mellor's pass but Frederick Bailey pulled off a try-saving tackle to stop the former Saint from crossing.
Saints had a score chalked off by the video official as Luke Thompson picked up a loose ball to ground, but Widnes got one that counted as Ah Van powered over in the corner.
Gilmore hit the post with the conversion but Widnes were in the ascendancy and two points ahead with seven minutes remaining. They just had enough in the tank to hold on.