Clermont booked their place in the Heineken Cup quarter-finals and must now wait to see if they get a home tie after beating Ulster 19-15 on Saturday.
The Irish side also qualify in second place after victories from Gloucester and Connacht on Friday determined their route through to the knockouts.
Despite the opening period ending 6-6, it was a thrilling half of rugby with typical European fire.
Morgan Parra and Ruan Pienaar did the honours from the kicking tee for Clermont and Ulster respectively, but chances came and went for both.
Parra and Pienaar continued their form with the boot as the visitors opened a 12-9 lead in the second half, but Ti'i Paulo's try gave the hosts the impetus they needed to secure victory.
The hosts started with typical fervour and tempo, and opened the scoring in the 14th minute from the boot of Parra after Dan Tuohy was sin-binned.
The Irish province, without the pressure of needing a result, gradually worked their way into the match. Pienaar levelled with a penalty, but the Clermont scrum-half responded.
Ulster continued to have their chances, though, and after their South African half-back had missed a three-point opportunity, he made the scores 6-6 at the half-time interval.
Pienaar and Parra traded penalties but Clermont were feelig the pressure as they started to needlessly infringe. And the visitors' fly-half kicked them into a 12-9 lead before Paulo powered over from close range. But a three-pointer apiece settled the contest.
Pen: Parra 4
Pen: Pienaar 5
Clermont: 15 Lee Byrne, 14 Sitiveni Sivivatu, 13 AurÃ©lien Rougerie, 12 Wesley Fofana, 11 Julien Malzieu, 10 David Skrela, 9 Morgan Parra, 8 Julien Bonnaire, 7 Julien Bardy, 6 Gerhard Vosloo, 5 Nathan Hines, 4 Julien Pierre, 3 ClÃ©ment Ric, 2 Benjamin Kayser, 1 Lionel Faure.
Replacements: 16 Ti'i Paulo, 17 Vincent Debaty, 18 Daniel Coetzee, 19 Jamie Cudmore, 20 Alexandre Lapandry, 21 Kevin Senio, 22 Brock James, 23 Regan King
Ulster: 15 Stefan Terblanche, 14 Andrew Trimble, 13 Ian Whitten, 12 Paddy Wallace, 11 Craig Gilroy, 10 Ian Humphreys, 9 Ruan Pienaar, 8 Pedrie Wannenburg, 7 Chris Henry, 6 Stephen Ferris, 5 Dan Tuohy, 4 Johann Muller (capt), 3 John Afoa, 2 Rory Best, 1 Tom Court.
Replacements: 16 Andi Kyriacou, 17 Callum Black, 18 Adam Macklin, 19 Lewis Stevenson, 20 Willie Faloon, 21 Paul Marshall, 22 Nevin Spence, 23 Adam D'Arcy.
Referee: Dave Pearson (England)
Assistant referees: David Rose (England), Roy Maybank (England)
Television match official: Trevor Fisher (England)