The incident took place in the village of Saint-Just in the district of Puy-de-Dome during the night into Wednesday.
The officers were shot by a 48-year-old man as they attempted to rescue a woman amid a domestic violence incident.
The suspected gunman was later found dead.
What happened in Puy-de-Dome?
The woman had allegedly taken refuge on the roof of a house, French broadcaster BFM TV reported.
Police approached the house shortly after midnight and were targeted by gunfire. The gunman initially shot and killed one officer and wounded another, before setting fire to the house.
Two further officers, responding to the scene, were then fired on and killed, according to the Clermont-Ferrand prosecutor's office.
BFM TV named the dead officers as Cyrille Morel, aged 45, Remi Dupuis, aged 37 and Arno Mavel, aged 21.
Officials said the woman had been safely rescued. At least seven elite tactical police officers remained on site early on Wednesday.
"The greatest precautions are being taken with regard to the dangerousness of the individual," a source close to the investigation told AFP.
Death of 'a madman'
Interior Minister Gerald Darmanin later announced the suspected gunman's death on Twitter, calling him "a madman."
The suspect was said to be known to authorities for charges relating to child custody issues. The operation on Wednesday was related to "intra-family violence," according to news agency AFP.
Politicians offer condolences
French President Emmanuel Macron honored the victims as "heroes," saying: "To protect us, our forces act at the risk of their lives."
France's Prime Minister Jean Castex called the incident "a tragedy" that affects us all and for which the entire country was grieving. He added: "I share the pain of their loved ones and their brothers in arms and assure them of my unwavering support."
France's Interior Minister Gerald Darmanin confirmed the incident via Twitter, adding: The nation bows before their courage and commitment. I offer my condolences to their families and comrades. Every effort is being made to hold the perpetrator to account."
Politician Eric Ciotti, a member of the National Assembly for Alpes-Maritimes, tweeted that there was "immense emotion" following the death of the police officers.
Islamist terror and police brutality: Can France stop the cycle of violence?