The development came a day after BJP president Amit Shah said that Parrikar would remain in his post, putting to rest speculation about continuance of the ailing chief minister.
The Opposition Congress has been claiming that all is not well in the BJP-led coalition government and has demanded a confidence vote in the Assembly.
Cabral and Naik were administered the oath of office by Governor Mridula Sinha at a simple ceremony at the Raj Bhawan.
Parrikar's poor health had sparked speculation over his continuation as the chief minister of Goa.
Shah had recently sent three central leaders to the coastal state to speak to state BJP leaders and allies.
This is the second reshuffle of the Parrikar-led cabinet in about one-and-a-half years.
D'Souza was minister for the urban development and Madkaikar was the power minister.
D'Souza is admitted at a hospital in the US while Madkaikar is undergoing treatment at a hospital in Mumbai since June after he suffered a brain stroke.
Naik, an MLA from Mormugao constituency in South Goa district, had earlier served as the power minister in the previous Laxmikant Parsekar-led cabinet.
Cabral, who represents the Curchorem constituency in South Goa district, is a first-time minister.
D'Souza expressed unhappiness over his removal from the state cabinet, wondering if this was the reward given to him by the party for his 20-year-long loyalty.
The MLA, who got elected on the BJP ticket from Mapusa constituency in North Goa district for the past two decades, claimed he was not even taken into confidence before being dropped from the cabinet.
The BJP has 14 seats in the 40-member Assembly, the GFP and the MGP have three each and the NCP has one. There are also three Independent legislators.
Parrikar and his nine ministers were sworn in on March 14, 2017. In April last year, Mauvin Godinho and Vishwajit Rane were inducted into the cabinet after they quit the Congress to join the BJP.
The opposition Congress, which is the single-largest party in the state with 16 MLAs, has demanded that the Parrikar government should have a confidence vote, claiming that it had lost the majority in the Assembly.
However, the BJP has asserted that its government continues to have the support of a majority of MLAs.