The most tactful approach is to talk to him privately, in a really casual and friendly way, like you're doing him a favor. Like, catch him alone at some point and say something like "hey, I just wanted to give you a heads up because we get along well: I've noticed lately that maybe there's something going on with your breath. Could be a health thing, poor hygiene, I don't know... but I figured you should know because nobody else is going to tell you straight up". Doesn't need to be dramatic, just direct but with care, you know?
The advantage of you two already knowing each other for two years is exactly that: there's trust. He'll probably appreciate it more than you'd think, because nobody likes finding out later that they've had this problem and nobody warned them. It could be something simple like an infection, gum disease, or even digestive issues he didn't even realize. The initial awkwardness passes quickly, but ignoring the problem leaves him embarrassed in front of other coworkers or clients.
What really matters is keeping the tone of someone who cares, not someone who's criticizing. Avoid that know-it-all way of "I noticed you have a problem," better to keep it more colleague-to-colleague. And if afterward he distances himself a bit or gets kind of weird, it'll pass quickly. Most people, when they get this kind of heads-up done right, end up grateful.