Preliminary election results in the central state of Madhya Pradesh show a nail-biting contest between India’s ruling BJP and the opposition Congress.
The results show a late comeback for the BJP in the state after early results put Congress well ahead.
However, Congress is leading in Rajasthan and Chhattisgarh, which were previous BJP strongholds.
Correspondents say the polls will boost the opposition ahead of general elections due in 2019.
A shot in the arm for the opposition?
Soutik Biswas, BBC News, Delhi
This is the last round of state polls before general elections, which will be held in the next few months.
The Congress’s vastly improved performance in the three key heartland states will help change the perception that Prime Minister Narendra Modi’s BJP is invincible, boost the morale of Congress party workers and make it more acceptable to sceptical regional allies in the run-up to general elections. It will also help raise the profile of the Congress leader, Rahul Gandhi, who led a spirited campaign in the three states.
In 2014, the BJP won 62 of the 65 parliamentary seats in these three states.
Tuesday’s performance will be a shot in the arm for the Congress, which has consistently lost state elections since 2014 – the party rules in only two major states.
But state polls are often a poor predictor for the general elections.
It will take a lot more – including a powerful counter narrative and wider voter acceptability – for the Congress to mount a serious challenge to Mr Modi next year.
The good news is that politics in India is beginning to look competitive again.
Election results are also being declared for the southern state of Telangana and the north-eastern state of Mizoram.
Regional parties – the Telangana Rashtra Samiti (TRS) and the Mizo National Front (MNF) – are headed for a landslide victory in these states.
The Congress was widely expected to win in the northern state of Rajasthan, while Madhya Pradesh was always seen as a close contest between the two parties.
But results in Chhattisgarh, where the Congress appears poised to win by a wide margin, have been the most surprising.
“The reason behind the Congress victory is anti-incumbency because people feel that there is a lack of development in most parts of the state despite 15 years of the BJP governing there,” says BBC Hindi’s Salman Ravi. “Farmers in particular, who have been angry about what they see as a lack of state support for their profession, voted for the Congress in large numbers. People in the state were clearly looking for change this time,”
An anti-incumbency vote against the BJP in the three key states had been predicted, and some analysts point out people vote differently at state and national level.
But the results so far suggest a very visible setback for the BJP, which had steadily increased its state footprint since coming to office in 2014.
And issues of rural discontent – such as unemployment, lack of development and farming distress – are being seen as issues that could affect ballots next year.
BBC Hindi’s Nitin Srivastava who is in Rajasthan, has been posting photos of the starkly different atmospheres at the BJP and Congress party offices in the state.