Wasps (13) 33
Tries: Jacobs, Kefu, Varndell Cons: Walder 3 Pens: Walder 4
London Irish (11) 25
Tries: Hodgson, Bowden, Ion Cons: Lamb 2 Pens: Lamb 2
Tom Varndell runs in Wasps' third and decisive try in their 33-25 win over London Irish
Wasps denied London Irish the chance to return to the top of the Premiership with a hard-fought victory.
The home side led 13-11 at the break as fly-half Dave Walder converted Ben Jacobs' try and kicked two penalties.
Ryan Lamb's two penalties and a Paul Hodgson try kept Irish in touch, before Daniel Bowden's score put them ahead.
But tries from Steve Kefu and Tom Varndell, and two Walder penalties, won it for Wasps, with Paulica Ion's late effort for the Exiles mere consolation.
Ion's converted 78th-minute try put the visitors on the brink of a losing bonus point, but Irish conceded a penalty in the dying seconds, which Walder coolly slotted between the posts.
Irish lost top spot to Northampton on Friday and the visitors never hit top form at Adams Park in their bid to reclaim it.
Lamb was wide with a third-minute penalty, allowing Walder to give Wasps the lead three minutes later.
However Wasps struggled in the scrum, with New Zealand referee Bryce Lawrence having a word with England loosehead prop Tim Payne after two scrums collapsed.
Payne was at fault again two scrums later and was penalised in front of the posts, with Lamb this time making no mistake with his kick.
Walder and Lamb then both missed penalties before Jacobs ended a stunning move by smashing through four tackles to score.
The Exiles replied when number eight Chris Hala'ufia knocked Richard Haughton out of his path before sending Hodgson in, before the two sides exchanged penalties, with Payne being shown a yellow card for going offside to hand Irish their opportunity.
Irish grabbed a controversial lead within two minutes of the restart after Clarke Dermody knocked on and Bowden scooped up the loose ball to touch down under the posts, with Lamb converting.
That gave Irish an 18-13 lead, but Walder soon chipped three points off that with a third penalty.
The Exiles squandered two chances to score on the Wasps line and the hosts made them pay when Kefu scored from close range to cap an attack that started with a searing break from Jacobs.
The game was settled six minutes from time when Irish turned the ball over and Jacobs broke clear to send Varndell in unchallenged.
Wasps rugby director Tony Hanks:
"I think it was one of those games where both teams really had a go and played the sport of rugby people want to watch.
"There were some issues at scrum-time, but it was a very competitive area.
"The win lifts us up to sixth in the table, and we showed we are on the right track.
"We're seeing a group of boys developing together and I recognised things out there that prove we are heading in the right direction."
London Irish head coach Toby Booth:
"Anybody who knows me knows I'm very straight up sort of bloke, but I'm in a state of shock what I have just watched.
"I am absolutely flabbergasted. I cannot believe we played like that and came away without even a bonus point.
"We were three times five metres off their line yet came away with nothing. Then we gave away too many penalties, and for a team who should have been out of sight when in the lead, it's tough to handle.
"There are some very quiet and disappointed guys in our changing room because they know they had a game for winning out there and didn't win it."
Wasps: Van Gisbergen, Haughton, Jacobs, Kefu, Varndell, Walder, Simpson, Payne, Ward, Broster, Shaw, Cannon, Worsley, Rees, Ward-Smith.
Replacements: Veale for Cannon (64).
Not Used: Lindsay, Ruwers, Baker, Betsen Tchoua, Berry, Jewell, Davies.
London Irish: Lennard, Ojo, Seveali'i, Bowden, Joseph, Lamb, Hodgson, Dermody, Paice, Rautenbach, Kennedy, Casey, Roche, S. Armitage, Hala'ufia.
Replacements: Malone for Lennard (75), Corbisiero for Dermody (75), Buckland for Paice (75), Ion for Rautenbach (55), Garvey for Roche (55), Thorpe for Hala'ufia (77).
Not Used: Watson, Allinson.
Ref: Bryce Lawrence (New Zealand).