Bayonne's Martin Bustos kicked six penalties against three from Clermont's Morgan Parra to deny Clermont even a losing point.
The result leaves them two points behind Stade Francais, who beat third-placed Castres on Friday night.
Grenoble moved into fourth place with a 25-19 win over Perpignan, with Fabien Alexandre's two second-half tries proving enough.
Montpellier are just one point further back in fifth after a hard-fought 28-23 win over Bordeaux-Belges, with Pierre Bérard's late try the difference between the sides.
The wins for Grenoble and Montpellier saw Toulouse pushed down to sixth as they lost 25-5 to Racing Metro.