In a stunning turn, Senate Republicans — in the dead of night, on their last hope of passing any kind of Obamacare repeal bill — came up short.

The result is, for now, a crushing blow to seven years of promises to uproot the health care law.

Three Republican senators — Susan Collins of Maine, John McCain of Arizona, and Lisa Murkowski of Alaska — voted to block the Senate’s so-called “skinny” repeal bill. It was the bare minimum: The bill failed on a procedural vote, 49 to 51.

All three senators had their reasons, and they had each hinted for weeks that they would be reluctant to back the Senate’s various Obamacare repeal proposals. By the wee hours of Friday morning, three different Senate plans — a robust repeal-and-replace bill, a cleaner repeal bill, and finally so-called skinny repeal — had failed over three days of debate.

Collins and Murkowski voted down all three. They had said for two months that they wouldn’t support a plan that resulted in millions fewer Americans having health coverage. The three health care bills that Republicans tried to pass would have led to between 16 million and 32 million fewer Americans having health insurance, when compared to Obamacare.

McCain, though, was the surprise. Diagnosed with brain cancer and the subject of much speculation after a rousing Senate speech calling for a return to an open and bipartisan process in the Senate, the Arizona Republican joined the other Republican dissenters at the climax of the Senate health care fight — and helped kill the bill.

The stunning defeat in the Senate leaves the GOP’s hopes for Obamacare repeal hanging by a thread. Republicans have been here before in the past seven months, and their attempts have always come back from the dead. But in the course of a week, Senate leadership came up with three different plans to try to achieve the goal of repealing Obamacare, and they fell short every time.

In the past three days, enough Republicans refused to vote to roll back Obamacare’s expanded health insurance coverage. Then, at the last moment, one more senator decided that the rushed and secretive process — a process decried even by Republicans who still voted to support it — was unacceptable.

Republicans refused to vote to roll back Obamacare’s coverage gains

Collins and Murkowski have made clear for weeks that simply undoing what Obamacare had accomplished — coverage gains, expanded Medicaid, protections for people with preexisting conditions — was unacceptable.

“I want greater access and lower costs. So far, I'm not seeing that happen,” Murkowski told me in mid-June.

Her state, though it struggles with the highest health care costs in the country, has expanded Medicaid to cover its poorest residents and has seen tens of thousands of people sign up for private coverage. Every plan Republicans put forward was projected to result in millions fewer people having insurance and out-of-pocket costs rising.

Collins made it equally plain.

"I cannot support a bill that is going to result in tens of millions of people losing their health insurance,” she said last month.

The math on each of the Senate GOP plans was clear. Repeal and replace: 22 million more uninsured. Repeal only: 32 million. “Skinny” repeal: 16 million.

The striking coverage losses led other Republican senators to oppose every plan but skinny repeal. Sen. Dean Heller (R-NV) also voted against repeal and replace and clean repeal after holding a press conference last month with his state’s Republican governor, saying that the gains made after Nevada expanded Medicaid shouldn’t be reversed.

“We can’t let fall behind the progress we’ve made in Nevada,” Heller said.

Likewise, on the repeal-only legislation, Sen. Shelley Moore Capito (R-WV) said she couldn’t support it.

“I did not come to Washington to hurt people,” she said.

Senate leaders had also set their sights even bigger than Obamacare: Their most ambitious proposal would have not only repealed and replaced much of the health care law but also fundamentally overhauled Medicaid.

The spending cuts — $772 billion over 10 years, versus current law — and a projected 15 million fewer enrollees also gave a critical mass of senators pause. On top of the raw numbers, Senate leaders were pushing to overhaul a 50-year-old program that covers more than 70 million Americans without holding a single hearing.

Collins was aghast.

“To do that without holding a single hearing on what the implications would be for some of our most vulnerable citizens, for our rural hospitals, and our nursing homes, is not an approach that I can endorse,” she said in recent days.

McCain decried the absurd Senate process, and then he ended it

Then there was McCain.

He wasn’t even supposed to be here. This month, he had emergency surgery for a blood clot and then discovered he had brain cancer. He was thought to be out for weeks.

His unexpectedly swift return to the Senate was supposed to be a boon for Senate Republican leaders, and it was — until early Friday morning.

A few signs had suggested this possibility. On Tuesday, even as he voted to open the health care debate on the Senate floor, McCain hinted at what was to come. He gave a floor speech after that vote to open debate, calling for a return to regular order and a spirit of bipartisanship.

“We try to do this by coming up with a proposal behind closed doors in consultation with the administration, then springing it on skeptical members, trying to convince them that it's better than nothing,” he said in that floor speech. “That it's better than nothing? Asking us to swallow our doubts and force it past a unified opposition.”

“I don't think that's going to work in the end,” he continued, “and it probably shouldn't.”

The speech, at the time, was widely condemned — McCain had just voted to advance a bill whose process he decried. The original Senate repeal-and-replace bill had been negotiated and drafted entirely in secret for the previous two months. No public hearings, no expert testimony. Even as a number of Republican senators expressed discomfort, none of them stopped it.

That included McCain — until Thursday night, after the most audacious ploy yet from Senate leadership.

Republican leaders, realizing that they didn’t have the votes for repeal and replace or repeal only, cooked up so-called “skinny” repeal — eliminating just Obamacare’s individual mandate and a few other provisions. The bill was unveiled to the public late Thursday night, just hours before the first vote on it.

Senate leaders, meanwhile, were making a puzzling promise: This bill wasn’t actually intended to become law. It was simply a vehicle to enter conference negotiations with the House.

McCain, who had expressed apprehension about the Senate repeal-and-replace bill and voted against repeal only, seemed thoroughly unsatisfied with “skinny” repeal as well. Even tepid assurances from House leaders that they would enter negotiations with the Senate didn’t assuage him.

“I’ve stated time and time again that one of the major failures of Obamacare was that it was rammed through Congress by Democrats on a strict party-line basis without a single Republican vote,” McCain said in a statement after his stunning vote.

“We must now return to the correct way of legislating and send the bill back to committee, hold hearings, receive input from both sides of aisle, heed the recommendations of nation’s governors, and produce a bill that finally delivers affordable health care for the American people,” he said. “We must do the hard work our citizens expect of us and deserve.”

The floor vote was dramatic. It became clear something was amiss when McCain spoke briefly with the top Senate Democrat, Chuck Schumer, and Schumer seemed elated. A conversation with the No. 2 Republican, John Cornyn, left Cornyn looking dour.

As Republican leaders held a vote on a Democratic motion open for more than an hour, McCain stood firm. His Arizona colleague, Jeff Flake, sat next to him for some time but seemed unable to get a word in. McCain gabbed with Sen. Lindsey Graham (R-SC), his best friend in the Senate.

The showdown was with Vice President Mike Pence, present in the Senate in case he needed to cast a tiebreaker vote to give the “skinny” repeal bill a 51-vote majority. McCain and Pence spoke for nearly 30 minutes, in a conversation that at times seemed friendly but then turned serious. McCain was insistent. Pence huddled with McConnell and left the floor for a time. McCain stepped into a back room, believed to be taking a phone call.

But the Arizona senator was unmoved.

For a while, he chatted with Collins and Murkowski — the two senators he would soon join to kill “skinny” repeal — as they laughed and smiled.

In the end, McCain stood dramatically before the Senate chair. He turned his thumb down. “Skinny” repeal — the Senate’s last hope, for now, to repeal Obamacare — was dead.