Wing Aisea Havili scored a hat-trick as Worcester beat Northampton in the last eight of the European Challenge Cup.
Northampton: (15) 25
Tries: Tupai (2), Reihana, Fox
Worcester: (17) 34
Tries: Lombard, Havili (3), Rasmussen
Cons: Lombard, Drahm (2)
The lead changed hands eight times but the Tongan sealed the win his third try in the 77th minute.
Worcester led 17-15 at the break after tries from Thomas Lombard and Havili cancelled out efforts from Paul Tupai and Bruce Reihana for Saints.
Havili (twice) and Dale Rasmussen added second-half tries, while Tupai and Darren Fox crossed for Northampton.
The visitors converted three of their tries, two from Shane Drahm and one from Lombard, while Saints were only able to add one conversion from Reihana.
Drahm and Reihana also shared a penalty apiece.
Northampton boss Paul Grayson:
"I don't think we were very promising at any point. We showed flashes - but we have enough talent to always show flashes.
"Since the turn of the year, we have pretty much performed well every week. But we were a little bit flat today.
"Our performance got what it deserved. Worcester managed the breakdown better than us."
Worcester coach Anthony Eddy:
"We knew it was going to be a particularly hard game today - and we responded extremely well.
"It's always nice if the forwards go forward and give the backs their chances.
"He had a very good game. Our back row was exceptional, and our outside-halves played really well.
"If you had paid your money to watch that game you would walk away pretty happy."
Northampton: Reihana, Lamont, Clarke, Quinlan, Cohen, Spencer, Robinson, Smith, Thompson, Barnard, D. Browne, Gerard, Tupai, Harding, Soden.
Replacements: Rudd for Cohen (78), Budgen for Barnard (41), Fox for Harding (54), Kydd for Soden (78).
Not Used: Richmond, Lord, Howard.
Worcester: Delport, Havili, Rasmussen, Lombard, Trueman, Drahm, Powell, Windo, van Niekerk, Tuamoepeau, Murphy, Gillies, Vaili, Sanderson, Horstmann.
Replacements: McDonald for Windo (61), C. Fortey for van Niekerk (41), Blaze for Murphy (74), L. Fortey for Vaili (55).
Not Used: Tuamoheloa, Gomarsall, Whatling.
Ref: George Clancy (RU).