|European Challenge Cup|
|Connacht (10) 28|
|Tries: Marmion, Aki, Adeolokun, Healy Con: Ronaldson Pens: Carty, Ronaldson|
|Gloucester (17) 33|
|Tries: Hanson, Marshall, Trinder, Afoa Cons: Williams 2 Pens: Williams 2, Twelvetrees|
Gloucester came through a nervy finale to win a competitive quarter-final against Connacht and reach the last four of the European Challenge Cup.
The English club led 30-18 with 13 minutes to play when back row Lewis Ludlow was sent to the sin bin.
Matt Healy's try helped Irish side Connacht to within two points, but a Billy Twelvetrees penalty helped seal a semi-final tie against Newcastle.
John Afoa marked his 100th Gloucester outing with one of their four tries.
The Cherry and Whites are aiming to reach the Challenge Cup final for the third time in four seasons, having won the competition in 2015 and then lost to Stade Francais in the 2017 final.
James Hanson's opening score for Gloucester was quickly cancelled out by Kieran Marmion, before Connacht's Bundee Aki crossed while Gloucester's Ben Morgan was in the sin-bin for a high tackle to put the hosts 10-5 up midway through the first half.
Upon Morgan's return, the visitors raced into a 17-10 half-time lead with well-worked scores from winger Tom Marshall and centre Henry Trinder, who jinked his way through the Connacht defence to touch down in the corner.
Niyi Adeolokun and Afoa swapped tries before Ludlow's temporary exit led to an exciting conclusion, from which Gloucester emerged victorious to ensure at least one English side will appear in the final in Bilbao on 11 May.
Connacht: O'Halloran; Adeolokun, Aki, Farrell, Healy; Carty, Marmion; Buckley, McCartney, Bealham, Thornbury, Roux, E McKeon, Butler, Muldoon (capt).
Replacements: Heffernan, McCabe, Carey, Dillane, Masteron, Blade, Ronaldson, Leader.
Gloucester: Woodward; Sharples, Trinder, Atkinson, Marshall; Williams, Heinz (capt); Rapava Ruskin, Hanson, Afoa, Slater, Thrush, Moriarty, Ludlow, Morgan.
Replacements: Matu'u, Hohneck, Balmain, Savage, Ackermann, Braley, Burns, Twelvetrees.
Referee: Romain Poite (France)
For the latest rugby union news follow @bbcrugbyunion on Twitter.