Derick Hougaard** scored all 27 points to steer the Bulls into their first Super 14 final with a 27-12 win over holders the Crusaders.
Hougaard equalled the tournament record of eight penalties in a match and added a 65th-minute drop goal as the Bulls lined up a first all-South African final against the Sharks in Durban next Sunday.
Opposite number Dan Carter replied with four penalties for the Crusaders in a match without tries.
Earlier, the Sharks defeated the Blues 34-18.
It was the first time the Crusaders had lost in the semis, in their ninth appearance in the last four. It was also their third successive defeat after losing their final two group matches.
The Bulls dominated through their forwards and watertight defence.
Australian referee Matt Goddard repeatedly penalised the Crusaders at the breakdown and Hougaard took every opportunity that came his way, landing all his kicks at goal.
The tone of the match was set in the first 10 minutes with Hougaard booting his first two penalties to put the Bulls 6-0 up.
The Crusaders fought back with two Carter penalties before Hougaard kicked three more, the last from 59 metres.
Hougaard was also on target in the 46th and 49th minutes, only to see Carter grab his fourth penalty soon after.
When Crusaders captain Richie McCaw was yellow-carded for repeated infringements at the ruck in the 58th minute, the game turned the way of the home team.
Hougaard landed one more penalty and then slotted his drop goal for the final points of the match.