Indian Prime Minister Narendra Modi's party has failed to win a key state in elections held amid record Covid-19 deaths and cases.
The BJP targeted West Bengal heavily during campaigning but it was comfortably held by the incumbent, Mamata Banerjee, a fierce Modi critic.
Her win came as a surprise to political observers who noted how much time and money the BJP invested in the state.
Mr Modi was even accused of focusing on polls rather than the pandemic.
Elections also went ahead in Assam, Tamil Nadu and Kerala states as well as the territory of Pondicherry (Puducherry).
The party held power in the north-eastern state of Assam but failed to make major gains elsewhere.
For 10 straight days, daily cases in the country have topped 300,000. It recorded more than 360,000 new cases and 3,417 deaths on Monday. On Sunday, India set a new record for daily deaths, with 3,689 recorded. Hospitals are facing dire shortages of beds and medical oxygen, with many Indians resorting to desperate pleas on social media to secure help.
Campaign rallies and voting have been blamed for the surge in cases.
Mr Modi and his home minister made dozens of speeches in West Bengal and were accused of focusing on the polls rather than the pandemic.
What happened in West Bengal?
With almost all the results counted, the Trinamool Congress party (TMC) led by the state's Chief Minister Mamata Banerjee has won more than 200 seats in the 294-seat assembly.
The results are set to make Ms Banerjee the leader of West Bengal for a third time. She is also India's only female chief minister.
Celebrating the win, she said West Bengal had "saved" India with the result and tackling Covid-19 would be her first priority.
Victory was soured by the loss of her seat in Nandigram to a former aide turned BJP defector. She has said she will challenge the result in court but may have to run again to remain chief minister.
West Bengal, home to 90 million people and the city of Kolkata, is of particular interest to election watchers. It is one of the few states that have never been ruled by Mr Modi's Hindu nationalist BJP.
Despite the defeat, this vote saw the BJP win nearly 80 seats to become the main opposition party. In the 2016 vote, the party had won just three seats there.
Analysis box by Geeta Pandey, Editor, India women and social affairs
Although assembly elections were held in five Indian states, the real battle was over West Bengal.
The BJP had pulled out all the stops for electioneering, with PM Narendra Modi leading its campaign from the front.
To enhance his appeal further to the Bengali voter, he had grown his beard long, with his supporters drawing comparisons with the state's much loved icon - Nobel Prize-winning poet Rabindranath Tagore.
But in the end, it all came to nothing.
At a time when a deadly second wave of coronavirus swept India and led thousands of Indians across the country to beg for hospital beds and oxygen cylinders, Mr Modi's frequent visits to the state to address huge rallies were called out for being a major failure of his prime ministerial duties.
So Mamata Banerjee fought back anti-incumbency, the BJP's mammoth election machinery, last-minute desertions from within her own party, and a largely unfriendly media to return for a third term.