Richards finished with figures of 5 for 31, which included the key wicket of Warriors captain Colin Ingram, as the visitors were bowled out for 243 in their second innings.
The Warriors had gone into day four on 51 for two, and, although they lost Jon-Jon Smuts early on, a couple of big partnerships looked as though they might be enough to save the game.
First Ingram put on 54 with Colin Ackermann, who made 47, and then shared a 113-run stand with Ryan Bailey that ate up 56 overs.
At that stage it looked as though the Warriors might hold out, but Bailey was caught and bowled by Ethy Mbhalathi to spark a massive collapse in which they lost their last six wickets for 19 runs in 14 overs.
Richards was the chief architect, having Ingram caught for 93 before getting rid of Simon Harmer six overs later.
A draw was still a possibility with the game sneaking into the final hour, but Richards dismissed Athenkosi Dyili, Sisanda Magala and Basheeru-Deen Walters with successive deliveries to finish the Warriors off and ensure that four days of dominance amounted to full points for the Titans.
They came away with 18.47 points to boost their overall prospects ahead of the break in Sunfoil Series action, while the Warriors earned 5.32.