Chasing a modest 124 to win the Australian side lost wickets in a heap after dismissal of skipper James Hopes, who hit a defiant 37, and now have two defeats in as many matches.
Hopes in company of Daniel Christian (21) raised a 44-run stand for the fourth wicket to stabilise the innings as they had lost three early wickets.
However once the two batsmen departed, Heats wilted under pressure. Left-hander Chris Sabburg raised their hopes with a quick-fire 19 off seven balls but his run out in the last over proved a last nail in the Heats' coffin.
It was Richards, who broke the crucial stand between Hopes and Christian by cleaning up the latter.
Also Read
Heats required 10 runs off the last over but managed only five and lost three wickets, including two runouts.
Titans, who were invited to bat, could not even bat for their full quota of overs as they were bowled out for 123 in 18.5 overs.
Skipper Henry Davids top-scored with a 31-ball 39 and added 69 runs for the second wicket Heino Kuhn (31).