Chennai Super Kings beat Warriors by 11 runs in the final Group A match to qualify for the semi-finals in the Champions League Twenty20, in Port Elizabeth, on Wednesday.
R Ashwin took three for 24 to restrict Warriors to 126 for eight in 20 overs, in reply to Chennai's 136 for six, but both the sides qualified for the last four stage.
Warriors, the South African Twenty20 champions, had already made sure of a berth in the last four when they put up 109 runs, while Chennai's victory put Victoria Bushrangers out.
The first semi-final will be an all-India contest, with IPL champions Chennai taking on Royal Challengers Bangalore, while South Australian Redbacks will play Warriors in the other semi-final on Saturday.
Justin Kreusch played a crucial role with the bat as he scored 25 to follow up on his superb spell with the ball that helped Warriors restrict Chennai to 136 for six.
Kreusch showed great control as he claimed three for 19 in four overs; he was ably supported by Rusty Theron, who took one for 16 in his four overs.
Michael Hussey, who hit a steady 50 from 39 balls, laid a good foundation as he put on 63 runs in 52 balls for the opening wicket with Murali Vijay, who hit a brisk 35 from 27 balls.
Captain Mahendra Singh Dhoni finished unbeaten on 31 from 21 balls as Chennai's middle order batsmen struggled to get going on a slow pitch.
Electing to bat, Murali Vijay got off the mark in style, hitting Lonwabo Tsotsobe through point region for the first boundary of the innings.
While Michael Hussey was content to rotate the strike, Vijay came up with the boundaries. He flicked Theron through the leg side for a four and then lifted Tsotsobe over midwicket for a six.
After a quiet start, Hussey decided to break the shackles as he charged down the wicket to Tsotsobe and chipped it over mid-on for his first four.
Chennai seemed content to keep their wickets intact in the first few overs as they reached 37 for no loss after six.
The introduction of spin in the form of Nicky Boje saw Chennai change gears. Vijay greeted him with a huge six over midwicket and then swept him for a four, while Hussey used the reverse sweep for the second boundary of the over for 16 runs from the over.
Kreusch broke the opening stand in his first over when he bowled Vijay with a full delivery for 35.
Hussey looked to accelerate the run rate as he slammed Botha for a four and six, in the 12th over.
Kreusch then pegged Chennai back when he claimed the wicket of the in-form Suresh Raina, who was brilliantly caught at long-on for six.
In the very next over, Hussey fell after completing his half-century. The left-hander made 50 from 39 balls before he was bowled by Botha as he tried to sweep him across the line.
Subramaniam Badrinath also perished in similar fashion when he tried to heave Kreusch across the line but missed and was bowled for two.
Captain Dhoni and Anirudha Srikkanth dealt mainly in singles for the next few overs before the former cut loose.
Dhoni cracked Tsotsobe through midwicket for a boundary, the first after a gap of 38 balls. Two balls later Ingram misjudged a difficult chance at long-off and gifted Dhoni another four, while the Chennai captain clubbed the next ball over deep midwicket for a huge six.
But Chennai failed to step up the ante in the final over. First, Srikkanth was bowled by a yorker from Theron for seven, while Justin Kemp sacrificed his wicket to save Dhoni as he was run out for a first-ball duck.
Theron conceded just five runs in the final over as Chennai finished on 136 for six in their 20 overs with Dhoni unbeaten on 31 from 21 balls.
For Warriors, Davy Jacobs got the innings going with a cracking boundary through point as he took full toll of a short and wide delivery from Dougie Bollinger in the first over.
He got lucky in the next over when he played a defensive shot against Ashwin and the ball rolled back on the stumps but it failed to dislodge the bails.
Ashwell Prince also enjoyed a slice of luck in the next over. He top edged a pull shot against Bollinger but Vijay, diving to his left, failed to hold on to a difficult chance.
Prince then stepped down the wicket to Ashwin and lifted him over mid-off for his second four. However, the off-spinner had his revenge off the next delivery when he got him caught at first slip for nine courtesy of a brilliant catch from Kemp.
But Jacobs continued to find the boundaries as he charged down the wicket to Ashwin and hit him through midwicket to take the total to 38 for one in six overs.
Shadab Jakati and Muttiah Muralitharan got into the act immediately as the spinning duo dried up the runs.
It was the former who was rewarded with a wicket, as Jacobs hit one straight to Hussey at deep midwicket and was dismissed for 32.
Raina continued his good form with the ball as he struck in his first over. Colin Ingram (17) tried to take on part-timer Raina but only managed to chip an easy catch to Badrinath on the midwicket boundary.
Kreusch tried to break the shackles as he charged down the wicket and hit Raina back over his head for a six.
Warriors all but secured their place in the last four as Boucher smashed Jakati for two sixes in Jakati's final over to take the total to 105 for three in 17 overs, needing just four to qualify for the semi-finals.
With 32 needed in three overs, Warriors were in with a chance of chasing down Chennai's score and knocking them out of the tournament.
But Ashwin changed the script with two wickets in his final over to end with impressive figures of three for 24.
First Ashwin got Kreusch stumped for a brisk 25 from 26 balls and in the same over had Boucher caught at long-on for the same score.
Johan Botha kept Warriors in the hunt with a couple of boundaries off Bollinger but Craig Thyssen was run out courtesy of some quick glovework from Dhoni.
With 15 needed from the final over and a semi-final spot guaranteed, it was no surprise that Warriors kept pressing for a victory.
The experience of Muralitharan stood out in the final over as he ended with two wickets. First Nicky Boje hit one straight down the throat of Hussey at long-on, while Juan Theron was stumped off the final ball of the innings.
Chennai's gamble of packing their line-up with spinners paid off as as the slow bowlers accounted for seven of the eight wickets to fall, while keeping the scoring rate in check.