A combined opposition led by the Congress had mounted a tough challenge in the western state of Gujarat, hoping to weaken Modi in his home base by exploiting discontent over lack of jobs and an unpopular national sales tax that hit business.
Trends from the count showed the BJP leading in 91 seats of the 182-member state assembly with the Congress 83, NDTV said. To rule a party needs to win 92 seats.
Indian stock markets opened weaker, with the 50-share NSE index down almost 2 percent. Almost all pre-vote and exit polls had predicted a comfortable victory, but the polls have often gone wrong in the past.
Modi’s party was ahead in the rugged northern Himachal Pradesh, the other state holding elections for a new assembly.
Modi faces a national election in 2019 and the state elections, to be followed by a couple more next year, are key contests where the opposition aims to slow down his momentum.
Businesses across India have been struggling with the poor implementation of a Goods and Services Tax that aims to harmonize an array of state and federal taxes but entangled them in cumbersome procedures.
Modi’s shock ban of high-value currency notes last November, in his fight against corruption, also disrupted small business that forms the bedrock of his support base in Gujarat.
“It was a tough election, the toughest we have fought,” said R. Bala, BJP member.
To ensure his party’s prospects, Modi addressed dozens of rallies during his campaign in the state, performed rituals and even waved from a seaplane on his last day on the campaign trail.