The Frenchman won on home tarmac, going fastest on the final stages to secure victory in his Delta Rally Peugeot 207 Super 2000.
Jan Kopecky came second for Skoda, finishing 39.8 seconds adrift after losing power and dropping to three cylinders - he lost 26.8 seconds on the final stage alone.
Stephane Sarrazin held off the fast-charging Craig Breen to claim third - the Mini driver edged out his Peugeot rival by just 3.2 seconds.
Meanwhile, Daniel Olivera went off the road in his Brazil World Rally Team Ford Fiesta RRC on the final stage of the event.
Bouffier led the Giru di Corsica-Tour de Corse ahead of the last two stages.
Skoda driver Jan Kopecky, the overnight leader, was 10.7 seconds adrift of the Frenchman after SS9 following changeable conditions in the morning.
Delta Peugeot's Bouffier took the lead on the first Carbuccia stage on Saturday before extending it to 19s on Sarrola.
However the Czech fought back to close the gap again on Marato - despite being surprised by a bump which was absent from the pacenotes at around 100mph.
Craig Breen damaged his Sainteloc Peugeot after hitting a bridge and lost half a minute, which allowed Stephane Sarrazin's Mini to climb above him and into third briefly before the Irishman took the position back.
Robert Kubica, already retired from the rally, did not run on the second leg.
1. Bryan Bouffier - Delta Peugeot - 2:14:58.2s
2. Jan Kopecky - Skoda + 39.8
3. Stephane Sarrazin - First Mini + 1:37.6
4. Craig Breen - Sainteloc Peugeot + 1:40.8
5. Francois Delecour - Kronos Peugeot + 3:25.0
6. Julien Maurin - Ford + 3:37.6
7. Andreas Aigner - Stohl Subaru + 7:53.9
8. Jean-Mathieu Leandri - Sainteloc Peugeot + 8:47.8
9. Germain Bonnefis - Renault + 9:16.8
10. Jean-Michel Raoux - Peugeot +13:54.3
- Sports & Recreation
- Jan Kopecky
- Craig Breen
- Stephane Sarrazin
- Bryan Bouffier