Western Province battled to a 17-13 victory over the Sharks in Durban on Saturday to finish the Currie Cup regular season at the top of the table.
The defending champions will now host the Golden Lions in the semi-finals at Newlands next week while the Free State Cheetahs will travel to Durban to face the Sharks.
In very wet and windy conditions, the WP pack came to the fore in a tight battle as the men from the Cape maintained their unbeaten record this year.
The sides scored one try apiece through Deon Fourie and Keegan Daniel respectively, but the accuracy of visiting fly-half Demetri Catrakilis proved decisive for Allister Coetzee's team.
Returning Springbok back Patrick Lambie, a second-half replacement, missed two crucial penalties in the closing 12 minutes to leave the home side short in a match they needed to win in order to claim top spot.
The wet conditions always pointed towards a kicking game and so it proved.
At the start, Pieter-Steph du Toit was penalised for off-side from the line-out with Catrakilis, who kicked three penalties and a drop-goal, comfortably slotting the opening points after seven minutes.
Fred Zeilinga hit straight back for the home side when Gerhard van den Heever illegally ran ahead of the kicker to concede the penalty.
After the restart, possession was handed straight back to the visitors when Marcell Coetzee knocked on, and after the resulting scrum, Catrakilis managed to pop over a drop goal despite the pressure of two onrushing defenders.
Again the Sharks countered Province with De Kock Steenkamp off-side, although Zeilinga crashed against the post this time, before finding his range with the next attempt before the 20-minute mark when Siya Kolisi was in an illegal position.
The first try eventually arrived after 26 minutes when Eben Etzebeth, Fourie and Duane Vermeulen found themselves outnumbering the home defence on the left, with the latter sending his captain away to score.
After Zeilinga fluffed a drop-kick attempt on the half-hour, SP Marais was off-side on the stroke of the whistle allowing Catrakilis to kick the Cape side into an eight-point lead.
Experienced pair Lambie and Daniel, who was shifted to the bench in the warm-up after picking up a slight injury, were introduced by the Sharks at the changeover, with both making an immediate impact in the middle.
Daniel scored the opening try for his side after 48 minutes, collecting a quick pass by Lwazi Mvovo courtesy of some momentum by a tackler.
After Lambie landed the conversion, momentum swung the other way again as Coetzee was adjudged by referee Jonathan Kaplan to have illegally stolen the ball at the breakdown - Catrakilis punting over once again.
With 12 minutes to play, Lambie missed a good opportunity to cut the gap to one with a poor penalty attempt after initially doing superbly to peg the Capetonians right back onto their line with a raking touch-finding kick.
The Springbok back then missed an even easier attempt when Fourie stole the ball illegally as Western Province held on to book a home semi-final.
Pens: Zeilinga 2
For Western Province:
Pens: Catrakilis 3
Sharks: 15 SP Marais, 14 Odwa Ndungane. 13 Tim Whitehead, 12 Heimar Williams, 11 Lwazi Mvovo, 10 Fred Zeilinga, 9 Charl McLeod, 8 Keegan Daniel (c), 7 Jean Deysel, 6 Marcell Coetzee, 5 Pieter-Steph du Toit, 4 Peet Marais, 3 Jannie du Plessis, 2 Bismarck du Plessis, 1 Tendai Mtawarira.
Replacements: 16 Kyle Cooper, 17 Wiehahn Herbst. 18 Stephan Lewies, 19 Jacques Botes, 20 Cobus Reinach, 21 Pat Lambie, 22 Louis Ludik
Western Province: 15 Gio Aplon, 14 Gerhard van den Heever, 13 Juan de Jongh, 12 Damian de Allende, 11 Cheslin Kolbe, 10 Demetri Catrakilis, 9 Louis Schreuder, 8 Duane Vermeulen, 7 Siya Kolisi, 6 Deon Fourie (c), 5 De Kock Steenkamp, 4 Eben Etzebeth, 3 Pat Cilliers, 2 Scarra Ntubeni, 1 Steven Kitshoff.
Replacements: 16 Franks Malherbe, 17 Brok Harris, 18 Michael Rhodes, 19 Schalk Burger, 20 Nic Groom, 21 Kurt Coleman, 22 Jean de Villiers.
Referee: Jonathan Kaplan