Andy Goode kicked 15 points to help Worcester claim a first league win of the season - and their first against London Irish since September 2005.
The Exiles shook off a late arrival at Sixways to lead via a Ofisa Treviranus try and Steve Shingler's penalty.
But the Warriors led 10-8 at the break after Aleki Lutui's try and the first of Goode's three penalties.
Tries from David Lemi, Semisi Taulava and debutant Jon Clarke earned Richard Hill's men their bonus-point victory.
All Irish had to offer after the break was a second Shingler penalty.
Irish's arrival just minutes before the scheduled kick-off time, following heavy traffic on the M5, meant a delay of 30 minutes. But it was the visitors who had the better luck in the early stages.
Worcester's Nikki Walker left the field with a leg injury to be replaced by fit-again centre Clarke (for a delayed debut following his summer arrival from Northampton), before Irish scored the first try after 14 minutes.
Marland Yarde sent Treviranus away and the number eight had sufficient pace to hold off the cover defence for an excellent score.
Although Shingler missed the conversion he was soon on target with a simple penalty.
However, Saliosi Tagicakibau carelessly knocked on at the restart to give the Warriors a platform in the visitors' 22 and he was made to pay for his error when Lutui drove over from close range for a try which Goode converted.
Another mistake from Tagicakibau cost his side dear on 30 the half hour when the wing received a yellow card for tip tackling Jonny Arr and Goode easily kicked the resulting penalty.
Goode kicked another penalty after the break to extend Worcester's lead to 13-8, Shingler responding with a 45-metre penalty.
Goode was then bang on target again from nearly 50 metres. But it was not until the 68th minute, after Jamie Gibson's yellow card had again reduced Irish to 14 men, that Worcester found their way over when Lemi outflanked the defence.
Goode missed that conversion but kicked two more as Worcester added two late tries through Taulava and Clarke.
VIEW FROM THE DRESSING ROOM
Warriors coach Richard Hill told BBC Hereford & Worcester:
"It was an absolutely vital game for us to win. But the players had a lot of nerves as it was such a massive game for us and we made hard work of it.
"We had a very poor first 20 minutes and we had so many opportunities. We get into their 22 but don't make it count.
"In the end we scored four tries and we should have scored at least three more. We have to be more composed.
"But at least we are getting into their own 22 far more than we did last year."
London Irish coach Brian Smith:
"We were in control for the first 20 minutes and the game was anyone's at half-time.
"In the second half we were second rate, it's very disappointing when you haven't performed anywhere near your best.
"We've got to cop it on the chin as we didn't throw any punches in the second half. I'm frustrated that we didn't get into the game at all in the second half.
"Losing two players didn't help us but the referee was good. Our defence wasn't good enough and we are falling apart at the back end of games which is not acceptable."
Worcester: Pennell; Walker, Grove, Matavesi, Lemi; Goode, Arr; Mullan, Lutui, Andress, Percival, Schofield, Chris Jones, Betty, Kvesic.
Replacements: Clarke for Walker (9), Taulava for Kvesic (56), Gillies for Schofield (68).
Not Used: Hayes, Ceri Jones, Currie, Frost, Carlisle.
London Irish: Homer; Yarde, Joseph, Shingler, Tagicakibau; Humphreys, O'Leary; Lahiff, Paice, Aulika, Evans, Garvey, Danaher, Gibson, Treviranus.
Replacements: Gray for Danaher (40), Cotter for Aulika (68), Geraghty for Shingler (73), Ojo for Tagicakibau (73), Skivington for Garvey (73).
Not Used: Malton, Yanuyanutawa, Moates.
Sin Bin: Tagicakibau (30), Gibson (62).tendance: 8,418.
Referee: Wayne Barnes (RFU).