Ian Humphreys' late penalty and a fine display from winger Marland Yarde helped London Irish pip Worcester to secure their first win of the season.
Yarde crossed for two tries and put in a match-saving tackle at the death.
David Lemi's try and Ignacio Mieres's boot put Worcester 10-3 up before Exiles' Chris Hala'ufia was sin-binned.
Yarde's quickfire brace put his team in front, but Mieres's try gave the home side hope of victory only for Humphreys to kick the vital penalty.
Worcester, who were arguably the better side throughout, mounted a ferocious assault on the Irish try-line as the clock ticked down and it needed a brave challenge from Yarde to keep out number eight Semisi Taulava.
The incident was in keeping with a match in which Worcester struggled to make the most of their chances, while the Exiles were able to rely on Yarde's cutting edge on their relatively rare attacks.
Mieres and Humphreys exchanged early penalties before a fluent backline attack, including a brilliant offload by Chris Pennell, gave Lemi the chance to score.
Things got worse for the Exiles when Hala'ufia - making his 100th appearance for the club - was yellow-carded for kneeing an opponent in a ruck.
Worcester laid siege to the London Irish try-line but failed to cross it during Hala'ufia's absence.
Yarde showed them the value of a razor-sharp finisher before half-time as he zipped past three would-be tacklers on a 40m run to the line to level the scores at the break.
Eight minutes after the restart, Irish went ahead when Yarde evaded Pennell's cover tackle for a try which Humphreys converted for a 17-10 lead.
Mieres's second penalty cut the Exiles' lead and the fly-half crossed for a try soon after to put his team 18-17 up with 10 minutes to go.
But, with four minutes left, Worcester's Ed Shervington was penalised and Humphreys made no mistake from out wide.
VIEW FROM THE DRESSING ROOM
Worcester coach Dean Ryan:
"For the second week in a row there has been some random refereeing. There is an element of ill-discipline but I believe we are not getting a fair crack and I was astounded by the award of the last penalty.
"At 10-3 up, we were in control of the game and playing to our structural plan.
"They were down to 14 men but our ability to keep sides under pressure is non-existent. We should have gone on to be 20 points up but we failed to nail it.
"We have good footballers in this side but we need maturity as we are undoing all our good work by blowing pressure situations."
London Irish coach Brian Smith:
"I know they'll be disappointed as you hate to lose games in that fashion.
"The teams were evenly matched, it was see-saw stuff and we nicked it at the end but we played with great spirit.
"Marland Yarde's finishing is lethal and he is as good as there is in the game.
"He was finding his feet last season but now he's the real deal.
"His biggest strength is his willingness to learn but I believe there's still 25% improvement to come."
Worcester: Pennell; Drauniniu, Fatiaki, Matavesi, Lemi; Mieres, Hodgson; Andrew, Shervington, Murray, Williams, Jones, Thomas, Betty, Taulava.
Replacements: Sua for Hodgson (50), Andress for Murray (56), Schofield for Jones (56), Abbott for Betty (71), Gray for Mieres (75).
Not Used: Seymour, Fainga'anuku, Clarke.
London Irish: Ojo; Yarde, Armitage, Sheridan, Fenby; Humphreys, O'Leary; Parr, Paice, Aulika, Rouse, Low, Fisher, Treviranus, Hala'ufia.
Replacements: Danaher for Hala'ufia (60), Yapp for Parr (65), Evans for Rouse (65), Geraghty for Humphreys (80), Stevens for Paice (80).
Not Used: Halavatau, Sinclair, Allinson.
Sin Bin: Hala'ufia (26).
Referee: Tim Wigglesworth (RFU).