The ruling Bharatiya Janata Party in Gujarat was unable to end its 18-year jinx in Visavadar as it lost the bypolls to Arvind Kejriwal's Aam Aadmi Party despite a strong campaign.
AAP leader Gopal Italia retained the seat in Junagadh district for his party, defeating his BJP rival Kirit Patel by a margin of 17,554 votes.
Italia, the former Gujarat president of AAP, received 75,942 votes, Patel got 58,388 votes after the end of total 21 rounds of counting, as per the data shared by the Election Commission.
In Kadi seat of Mehsana district, reserved for Scheduled Caste candidates, BJP's Rajendra Chavda emerged victorious by a margin of 39,452 votes over Congress' Ramesh Chavda.
While Rajendra Chavda received 99,742 votes, former Congress MLA Ramesh Chavda managed to secure 60,290 votes.
Results of the bypolls to the two seats were declared during the day.
After facing defeat on both the seats, Gujarat Congress president Shaktisinh Gohil tendered his resignation 'on moral grounds'.
BJP leaders earlier said they were hoping to break the 18-year jinx in Visavadar, where the party last tasted victory in 2007.
After his victory, Italia said BJP failed to win despite putting all its efforts in Visavadar, a seat once represented by former Gujarat chief minister Keshubhai Patel.
"People of Visavadar have set an example that common citizens can do wonders if they take a resolve. Poll results of Visavadar proved that money or muscle power can never survive in front of people's power. If people of Gujarat take such resolve, BJP can be uprooted in no time," Italia said.
Gujarat BJP spokesperson Yagnesh Dave said his party failed to convince Visavadar's voters, while 'Italia succeeded in misguiding people with hollow promises'.
The BJP accepts the people's mandate and will try to win in the 2027 assembly elections, Dave added.
Despite its near-total dominance in the state, the BJP has not won the Visavadar seat since 2007.
Following a rift with the BJP, former CM Keshubhai Patel, who represented this seat in 1995 and 1998 as a BJP MLA, had formed his own party -- Gujarat Parivartan Party (GPP) ahead of the 2012 assembly polls.
Patel fought from Visavadar in 2012 as a GPP candidate and won after defeating BJP's Kanubhai Bhalala.
After two years, Patel resigned as an MLA after merging his party with BJP. In return, BJP offered a ticket to Keshubhai's son Bharat Patel.
However, Congress' Harshad Ribadiya defeated BJP's Bharat Patel in the bypoll held in 2014.
Ribadiya once again emerged victorious in 2017 as he defeated BJP's Kirit Patel, who was given a ticket this time too.
Ahead of the assembly polls of 2022, Ribadiya resigned as MLA and joined BJP.
Though BJP gave him a ticket, he was defeated by AAP's Bhupendra Bhayani in the 2022 assembly polls.
The Visavadar seat fell vacant in December 2023 after Bhayani resigned and joined the ruling BJP.
The BJP had left no stone unturned to win the seat as senior party leaders, including Gujarat BJP president and Union Jal Shakti minister CR Paatil, had addressed rallies at Visavadar ahead of polls.
While addressing a gathering in Visavadar on June 9, Paatil had urged voters to not 'repeat their mistakes' of past three elections when they elected Congress and AAP candidates.
Despite a strong campaign and high stakes, BJP failed to break the jinx, as local voters remained committed to AAP.
Congress candidate Nitin Ranpariya was nowhere in the picture as he managed to secure a meagre 5,501 votes and came third.
The Kadi constituency was lying vacant since February 4 following the death of BJP MLA Karsan Solanki.
In the bypoll, the BJP fielded Rajendra Chavda, while the Congress gave ticket to Ramesh Chavda, who won the seat in 2012 but lost to BJP's Karsan Solanki in 2017.
Like Visavadar, there was a three-way contest in Kadi also, with the Arvind Kejriwal-led AAP fielding Jagdish Chavda.
In the 182-member Gujarat assembly, the party position following the bypoll results is as follows: BJP 162, Congress 12 and AAP 5. While one seat is with the Samajwadi Party, two are with independents.