Cyclone Fani has torn through India's eastern coast as a grade 5 storm, with winds gusting up to 205km/h and affecting weather as far away as Mount Everest as it approached Kolkata.
The India Meteorological Department said the "extremely severe" cyclone in the Bay of Bengal hit the coastal state of Odisha around 8am, with weather impacting the Asian subcontinent.
Officials have now started to assess the impact of one of the worst cyclones to hit the region in decades.
The cyclone has knocked out power lines and cut telecommunications in Odisha, and many old buildings and traditional houses were damaged.
A local news agency said eight people have been killed, and dozens more injured.
India's National Disaster Management Authority has warned fisherman along the east coast not to go out to sea, describing the conditions as "phenomenal".
Dust storms were forecast in the desert state of Rajasthan bordering Pakistan, heat waves in the coastal state of Maharashtra on the Arabian Sea, heavy rain in the northeastern states bordering China and snowfall in the Himalayas.
Around 1.2 million people were evacuated from low-lying areas of Odisha and moved to nearly 4000 shelters, according to India's National Disaster Response Force. Indian officials put the navy, air force, army and coast guard on high alert. Odisha Special Relief Commissioner Bishnupada Sethi said the evacuation effort was unprecedented in India.
By Friday afternoon, Fani had weakened to a "very severe" storm as it hovered over coastal Odisha and was forecast to move north-northeast toward the Indian state of West Bengal by Friday evening.
In Bhubaneswar, a city in Odisha famous for an 11th-century Hindu temple, palm trees whipped back and forth like mops across skies made opaque by gusts of rain.
It is a "very, very scary feeling," said Tanmay Das, a 40-year-old resident, who described "the sound of wind as if it will blow you away".
Most of the area's thatched-roof houses were destroyed, and there was no electricity.
The national highway to Puri, a popular tourist beach city with other significant Hindu antiquities, was littered with fallen trees and electricity poles and a blue highway sign, making it impassable. A special train ran on Thursday to evacuate tourists from the city.
The airport in Kolkata, the capital of West Bengal and rail lines were closed. At least 200 trains were cancelled across India.
The storm hit in the middle of India's six-week general election, with rain forecast in Kolkata forcing political parties to cancel campaign events.
The National Disaster Response Force dispatched 54 rescue and relief teams of doctors, engineers and deep-sea divers to flood-prone areas along the coast and as far afield as Andaman and Nicobar Islands, a group of islands that comprise a union territory about 1300km east of mainland India in the Bay of Bengal.
Up to 10cm of rain was expected in much of Sri Lanka, the island nation off the eastern tip of India.
More than 2300km away on Mount Everest, some mountaineers and Sherpa guides were descending to lower camps as weather worsened at higher elevations. The government issued a warning that heavy snowfall was expected in the higher mountain areas with rain and storms lower down, and asked trekking agencies to take tourists to safety.
Hundreds of climbers, their guides, cooks and porters huddled at the Everest base camp, according to Pemba Sherpa of Xtreme Climbers Trek, who said weather and visibility was poor. May is the best month to climb Everest when Nepal experiences a few windows of good weather to scale the peak.
On India's cyclone scale, Fani is the second-most severe, equivalent to a Category 3 hurricane.
Its timing is unusual, according to data from the Meteorological Department. Most extremely severe cyclones hit India's east coast in the post-monsoon season. Over roughly half a century, 23, or nearly 60 percent of the cyclones, to hit India were observed between October and December.
Because Fani spent 10 days gathering strength over the sea, it delivered a huge blow when it made landfall.
Some of the deadliest tropical cyclones on record have occurred in the Bay of Bengal. A 1999 "super" cyclone killed around 10,000 people and devastated large parts of Odisha. Due to improved forecasts and better coordinated disaster management, the death toll from Cyclone Phailin, an equally intense storm that hit in 2013, was fewer than 50, according to the World Meteorological Organisation.
In the Indian state of Andhra Pradesh just south of Odisha, Fani topped electricity poles and uprooted others, leaving them in sharp angles. In the Srikakulam district, where around 20,000 people were evacuated, thatched-roof houses collapsed and fishing boats left unmoored on beaches were sliced into shards.
400,000 evacuated in Bangladesh
Authorities in Bangladesh evacuated about 400,000 people and took them to cyclone shelters - decades-old, raised concrete structures - as the weather office forecast that the storm would cross the country's vast southwestern coastal region by midnight.
Shah Kamal, a Ministry of Disaster Management and Relief official, said in the capital, Dhaka, that members of the navy and coast guard, as well as police and volunteers, were working around the clock to help with evacuations and stocking emergency supplies of dry food and medicine. "But I think we will not be affected severely given the weakening force of the cyclone Fani," he said.
Authorities also halted activities at Chittagong Seaport, which handles 80 percent of the country's overseas trade.
Aid agencies warned that more than 1 million Rohingya from Myanmar living at refugee camps near the coastal district of Cox's Bazar were at risk. Hillol Sobhan, local communications director for the aid group Care, said it had emergency supplies for refugees.