Here's the latest developments in this story:
In Uttar Pradesh, the Samajwadi Party has won eight of the 11 assembly seats for which by-elections were held; the BJP has won the three remaining seats. Ten of those were held by the BJP, vacated by legislators who became MPs as the party virtually swept the state in national elections four months ago. (Samajwadi Party Wrests BJP Seats in UP, Wins On PM Modi's Turf)
By-elections were also held for one Lok Sabha seat - Mainpuri, vacated by Samajwadi Party chief Mulayam Singh Yadav. The party has won that seat too, where Mulayam Singh's grand-nephew Tej Pratap Singh Yadav, 26, makes his political debut.
In Gujarat, Prime Minister Narendra Modi's state, the BJP's perfect score of 26-0 in the May national elections remains unblemished with it's candidate winning Vadodara, the one Lok Sabha seat where by-elections were held after Mr Modi vacated it choosing to keep Varanasi in Uttar Pradesh as his parliamentary constituency.
But the Congress, flattened in the state four months ago, has wrested from the BJP three of the nine seats it had vacated, necessitating by-elections.
And in Rajasthan, another state that the BJP swept in both the national elections and in state elections a few months before that, the Congress has won three of the four assembly seats. Here too the BJP had held all four; it managed to win Kota South. "We have won 3 of the 4 seats. The BJP should take a lesson from these elections and introspect," said Rajasthan Congress chief Sachin Pilot. (Congress May Make a Comeback in Vasundhara Raje's Rajasthan)
The third Lok Sabha constituency where by-elections were held is Medak in Telangana, India's newest state. The seat, vacated by Telangana Rashtra Samithi Chief K Chandrasekhar Rao after he became the state's first Chief Minister, was won by his party's K Prabhakar Reddy.
By-elections were also held last Saturday to two assembly seats in West Bengal, five in Northeastern states and one each in Chhattisgarh and Andhra Pradesh. The Chhattisgarh result will be declared later. (Early Trends Indicate Gains for AIUDF in Assam)
It was a shot in the arm for BJP in West Bengal where it won Basirhat Dakshin (South) seat. The ruling Trinamool Congress won from Chowringhee in Kolkata. In Andhra Pradesh, BJP ally TDP has won the seat it had held. (BJP Makes Debut in Mamata Banerjee's West Bengal)
Mr Modi's BJP had won a spectacular mandate to take power at the Centre in the national elections this year. But in by-elections held in August to 21 seats in key states like Bihar, Uttarakhand, Karnataka and Madhya Pradesh, but it performed much below expectation.
For the BJP, today's results also test its strategy for Assembly elections in two important states next month - Maharashtra and Haryana. In both it hopes to extend big wins in the national elections to the assembly polls.