Ravindra Jadeja (44 not out) and India captain MS Dhoni were chiefly responsible for lifting the Super Kings to 155-6 in Bangalore with some powerful late hitting.
Chennai, who now stand on the brink of a semi-final berth, then restricted their opponents to 142-7, thanks largely to the efforts of spinner Ravichandran Ashwin (3-20 from four overs).
The result eliminates Perth from contention, while the Super Kings can only be denied a place in the last four if the Lahore Lions record an emphatic victory over the Scorchers on Tuesday.
A poor start from the Chennai top order saw them slip to 33-3 in the sixth over before Dwayne Bravo (27) helped to steady the ship somewhat.
Bravo's departure at the hands of Ashton Turner (1-19) left the Super Kings back in a precarious position at 79-5, but a brilliant partnership of 64 between Jadeja and Dhoni (35) proved significant.
The duo cut loose in the closing stages of the innings, Dhoni thumping three consecutive sixes as the penultimate over from Yasir Arafat (1-51 from four) went for 27.
Dhoni was eventually dismissed in the final over by Nathan Coulter-Nile (1-28 from four), but the shift in momentum continued into the Scorchers' reply as Craig Simmons (13) and Ashton Agar (4) departed cheaply.
Adam Voges (27) and Mitchell Marsh (19) attempted to tilt the contest in Perth's favour, only for Ashwin to end their stand of 27 by dismissing Marsh an over after he had been denied the all-rounder's wicket due to a no-ball.
Ashwin then trapped Sam Whiteman (5) lbw shortly before captain Voges fell in the same fashion to Ashish Nehra (2-27 from four).
Turner (22) and Coulter-Nile (30) attempted to rally the Australian outfit with an admirable show of defiance.
But Perth's resistance was effectively ended off the last ball of the 19th over when Coulter-Nile smacked a Mohit Sharma (1-17 from three) full toss to Bravo, leaving Arafat (12 not out) and Joel Paris (5 not out) with far too much to do in the final six balls.