Today's big winner the BJP has retained the Bandhavgarh assembly seat in Madhya Pradesh, Bhoranj in Himachal Pradesh, and Dhemaji in Assam. It has wrested the Dholpur seat in Rajasthan from Mayawati's Bahujan Samaj Party and the Delhi assembly seat from AAP.

PM Narendra Modi has in a tweet thanked the people for their "unwavering faith in politics of development and good governance". He said the performance of the BJP in the by-elections was "impressive."

The Delhi win takes the BJP's tally from three to four in the Delhi assembly dominated by the Aam Aadmi Party, but its new Rajouiri Garden MLA Manjinder Singh Sirsa said it was a clear signal that Chief Minister Arvind Kejriwal's government has lost the people's support two years after it came to power.

AAP's loss comes just 10 days before crucial civic polls in Delhi seen as a test of its political relevance, after its poor showing in the Punjab and Goa assembly elections last month. "Need to revisit people connect," said Mr Kejriwal's deputy Manish Sisodia.

The ruling Congress celebrated in Karnataka, retaining both the Nanjangud and Gundulpet assembly seats. The by-polls became a prestige battle for the Congress and the opposition BJP ahead of assembly polls next year. "We bow our heads and accept the decision of the people," said the BJP's BS Yeddyurappa, conceding defeat.

Nanjangud is in Chief Minister Siddaramaiah's home district of Mysuru. His close aide-turned-rival V Srinivas Prasad, who held the seat earlier, had joined the BJP after he was dropped as minister. He contested as the BJP's candidate but lost to the Congress' Kalale N Keshavamurthy.

In Madhya Pradesh, the Congress' trailed the BJP for many rounds in Ater, before its Hemant Katare shot ahead to beat the BJP's Arvind Bhadoria by just 857 votes. Mr Katare's father was the sitting MLA in Ater and died last year. In Madhya Pradesh thus, the BJP and Congress retained their one seat each.

The BJP continued its winning streak in Assam, with the party's Ranoj Pegu beating his nearest rival Babul Sonowal of the Congress by over 9,000 votes to win the Dhemaji by-poll assembly seat. The BJP won Assam or the first time last year, handing a humiliating defeat to the Congress, which ruled the state for years.

Chief Minister Mamata Banerjee's Trinamool Congress has retained West Bengal's Kanthi Dakshin seat. In Jharkhand, the Jharkhand Mukti Morcha retained the Litipara seat.