Yorkshire Diamonds 185 for 6 (Rodrigues 112*) beat Southern Vipers 184 for 4 (Bates 47, Wyatt 42, Davidson-Richards 3-21) by four wickets
But the Diamonds knew only a bonus-point victory would keep their chances alive. To secure that, they needed to chase 185 inside 16 overs. Despite Rodrigues' efforts, Suzie Bates' 47 and a rapid 42 from Danni Wyatt helped the Vipers to a total that was only chased down on the final ball.
The Vipers will now face Loughborough Lightning in the semi-final for the chance to take on Western Storm in the final.
The Diamonds lost their openers inside the Powerplay at the start of their chase - both to Tash Farrant - as Lauren Winfield departed for a second-ball duck and Alyssa Healy was caught for 22. India star Rodrigues was aggressive from the outset, hitting eight boundaries in her first 20 balls to reach 42. Her half-century came from 26 deliveries and her partnership with Hollie Armitage stretched to 90 from 54 balls to take Yorkshire to 118 for 2 in the 13th over.
But the Diamonds quickly fell to 121 for 5. Amanda-Jade Wellington trapped Armitage for 23 and also dismissed Bess Heath two balls later for a duck, before Fi Morris had Alice Davidson-Richards caught behind.
Rodrigues was undeterred, striking cleanly to all parts of the ground. She guided her team to within striking distance, needing 17 from 12 balls. Her century came from 51 balls and included 16 fours and one six.
There were ten runs needed from the final over, and Smith's single off the final ball clinched victory.
Earlier, Wyatt continued her sensational form by blasting 42 from just 20 balls inside the Powerplay - taking her to 267 runs in her last four innings. She launched her second ball for six, taking seven fours and another six before skying one to Davidson-Richards as Leigh Kasparek made the breakthrough.
Opening partner Bates allowed Wyatt to provide the acceleration, pacing her innings perfectly. She steadily began to build momentum, on several occasions placing the ball perfectly down the ground.
Tammy Beaumont's innings was full of ingenuity, punctuated by a string of sweeps and scoops. It was her wicket, dismissed by Davidson-Richards for a 29-ball 33, which ended the partnership at 76 from 51 balls in the 15th over.
Davidson-Richards struck again three balls later as Bates fell for 47 from 39 balls and Yorkshire began to claw back at 127 for 3.
Thea Brookes came and went for a run-a-ball seven - a third for Davidson-Richards - but a superb partnership of 43 from 20 balls between Maia Bouchier and Wellington guided the Vipers to 184 for 4.
The Vipers' final group game is at home to Loughborough on Wednesday, with the Diamonds away at Western Storm.