The hosts led at half-time through Ross Batty's try.
Jack Wilson extended their advantage before Cardiff were reduced to 14 men when George Earle was sent off after making contact with an opponent's face.
Aled Brew scored his first try for Bath before Batty intercepted a pass for his second score and Elliott Stooke ran in a late fifth try.
Bath: Tom Homer, Jack Wilson, Jonathan Joseph, Ben Tapuai, Aled Brew, George Ford, Kahn Fotuali'; Nick Auterac, Ross Batty, Max Lahiff, Charlie Ewels, Dave Attwood, Tom Ellis, Francois Louw, Taulupe Faletau
Replacements: Michael van Vuuren, Beno Obano, Shaun Knight, Elliott Stooke, Zach Mercer, Darren Allinson, Adam Hastings, Max Clark
Cardiff Blues: Matthew Morgan; Cory Allen, Rey Lee-Lo, Willis Halaholo, Blaine Scully; Steven Shingler, Lloyd Williams; Rhys Gill, Kirby Myhill, Taufa'ao Filise, George Earle, James Down, Maceuley Cook, Sam Warburton (captain), Josh Navidi.
Replacements: Matthew Rees, Brad Thyer, Scott Andrews, Jarrad Hoeata, Seb Davies, Ellis Jenkins, Tomos Williams, Nicky Robinson.
Bath ended Cardiff Blues' 100% start in the European Rugby Challenge Cup with a comfortable win at The Rec.