Indian Prime Minister Narendra Modi's Bharatiya Janata Party (BJP) has held on to power in an election in his home state Gujarat but by a reduced margin.
As votes are counted after the state elections, the BJP is leading in 99 of the 182 assembly seats, according to election authorities. The main opposition Congress is ahead in 77.
Gujarat is a stronghold state for the BJP, which has governed for 22 years.
The Congress has conceded victory to the BJP.
The Congress party accepts the verdict of the people and congratulates the new governments in both states. I thank the people of Gujarat and Himachal with all my heart for the love they showed me.
The BJP also won in Himachal Pradesh - where it is leading in 44 of the 65 seats, while the Congress is ahead in 21.
Mr Modi tweeted, thanking voters in both states while assuring them of economic development.
I bow to the people of Gujarat and Himachal Pradesh for their affection and trust in BJP. I assure them that we will leave no stone unturned in furthering the development journey of these states and serve the people tirelessly.
The results of the election signal a win for the "politics of development", BJP president Amit Shah said, speaking at a press conference at the party headquarters in Delhi.
The BJP's majority had been under threat from the opposition alliance, polls suggested.
Stock markets have recovered after opening lower on Monday after early results had put the Congress ahead.
Mr Modi was chief minister of Gujarat three times and his track record there helped propel him to success in national elections. To lose the state polls would have been a huge loss of face.
He held more than three dozen meetings in the state and campaigned on economic development and Hindu nationalism to woo voters.
The prime minister's decision to ban high-value currency notes in November 2016 and the way the newly introduced Goods and Services Tax was implemented are believed to have fuelled anger against the party in Gujarat.
State BJP member R Bala told Reuters news agency the election had been the "toughest" they had fought there.
Polling in Gujarat and Himachal Pradesh was held between 9 and 14 December.
More than 68% of Gujarat's 43 million eligible voters cast their ballots, while Himachal Pradesh saw a voter turnout of about 74%.