European Challenge Cup
Edinburgh (24) 34
Tries: Lang 2, Bradbury, Gilchrist Cons: Thompson 4 Pen: Thompson 2
Bulls (7) 28
Tries: Kriel 2, Penalty try, Burger Cons: Johannes, Goosen 2
Edinburgh held off a second-half fightback from the Bulls to secure a home semi-final in the European Challenge Cup.
Two tries from James Lang and a Magnus Bradbury score put Edinburgh 24-7 up at the break, David Kriel crossing for the visitors.
Grant Gilchrist's try gave Edinburgh breathing space on the scoreboard before the Bulls came back strongly with a penalty try, one from Cameron Hanekom and a second from Kriel to set up a grandstand finish, but the hosts held on.
Sean Everitt's side will face either Gloucester or Bath – who play on Sunday evening – on the weekend of 2-4 May at Hive Stadium for a place in the final.
It took Edinburgh less than four minutes to cut the Bulls open. Matt Currie sliced through the defence on a beautiful line, fed Ben Vellacott who in turn fed Lang to go in for the opening score.
The home side went hunting for more and, with Bulls' Zak Burger in the bin, Bradbury ploughed over to establish a 14-point lead in as many minutes as Ross Thompson converted again.
Bulls looked there for the taking until they sprung into life with an immediate response. Harold Vorster broke from deep, cutting right through the heart of the Edinburgh defence before feeding Kriel on his shoulder to score.
Lang re-established the 14-point cushion when his attempted kick through ricocheted off a defender and bounced kindly back into his arms for a free run under the sticks.
Thompson maintained his record with the boot by kicking a penalty to send the home side into the break with a 17-point lead.
Bulls' hopes of a comeback were dented when flanker Jannes Kirsten was sent to the bin for a high shot, and moments later Edinburgh co-captain Gilchrist crashed over after an initial burst from Ewan Ashman.
At 31-7, Edinburgh looked just about home and hosed, but the Bulls started to show signs of life.
The South Africans were awarded a penalty try when Ross McCann entered a ruck from the side near his own line to prevent a score. McCann was promptly yellow carded.
Moments later, Stravino Jacobs sat down Darcy Graham with a huge carry before the ball was fired in-field to Hanekom to dot down under the posts.
Thomson banged over a penalty to try and settle things down for the home side, but the Bulls kept coming and Kriel finished off a period of relentless pressure for his second try to make it a six-point game and set-up a nervous finish.
Edinburgh held firm and when Pierre Schoeman got over the ball to secure a penalty at the death, the job was complete.
Edinburgh: Goosen, Graham, M. Currie, Lang, McCann, Thompson, Vellacott, Venter, Ashman, Sebastian, Skinner, Gilchrist, Ritchie, Watson, Bradbury.
Replacements: Cherry, Schoeman, Rae, Carmichael, Muncaster, Price, C Scott, Tuipulotu.
Blue Bulls: Williams, Petersen, Kriel, Vorster, Jacobs, Johannes, Z. Burger, Matanzima, Van der Merwe, W. Louw, Nortje, Van Heerden, Coetzee, Kirsten, Hanekom.
Replacements: J Grobbelaar, Wessels, M Smith, Ludwig, van Staden, Papier, Goosen, Moodie.