While NCP and Shiv Sena finished second and third, the BJP had to be content with only 39 seats, finishing fourth in the overall seat tally.
The results of the polls held on Sunday were declared late yesterday.
The final tally showed Congress on the top with 105 wards, followed by the NCP that won 80 wards and Sena that bagged 59 wards.
The polls were held in Raigad, Nandurbar, Ahmednagar, Nanded, Osmanabad, Hingoli, Washim and Chandrapur councils and nagar panchayats. The by-elections were conducted in Ratnagiri, Jalgaon, Latur, Yavatmal, Wardha and Bhandara.
Also Read
Congress-NCP leaders described the outcome as a reflection of the people's disillusionment with the ruling party.
Leader of Opposition in the Legislative Assembly Radhakrishna Vikhe-Patil said, "The results show the people's confidence in the Congress is back and that people are disillusioned with the BJP led regime."
The results come ahead of Congress Vice-President Rahul Gandhi's Mumbai visit on January 15 and 16.
During elections to 59 nagar panchayat and municipal councils in November 2015, BJP was in the lead with 254 wards, followed by Congress with 239, NCP with 201 and Shiv Sena with 126 wards.