Senate Majority Leader Mitch McConnell, a Republican, described the result as a "disappointing moment".
Democrat Chuck Schumer said his party was relieved that millions of people would retain their healthcare.
A dagger in Trump's plans - BBC North America Correspondent Anthony Zurcher
The arc of history is long, but it bends towards revenge.
Just over two years after candidate Donald Trump mocked John McCain's Vietnam War record, noting that he prefers heroes "who weren't captured", the Arizona senator stuck a dagger in President Trump's healthcare reform plans.
There were gasps when Mr McCain, after being furiously lobbied by Vice-President Mike Pence, joined two other Republican senators in voting against the so-called "skinny" repeal plan, considered the bare minimum Senate Republicans could agree on.
Instead of a big step toward becoming law - either in its skinny form or after further negotiations with the House of Representatives - the future of Obamacare repeal has been thrown into doubt.
The reality is, for now, there is no minimum level of change on which Senate Republicans can agree. They either have to work with Democrats or resign themselves to stalemate and move on to other topics, like taxes or infrastructure spending.
It will take some time for the enormity of this late-night Senate drama to sink in. No one really expected Mr McCain to be the decisive vote, but the man who once had a reputation as a Republican "maverick", now facing a dire brain cancer diagnosis, had at least one more surprise in his pocket.
What was the 'skinny repeal'?
The bill - officially known as the Health Care Freedom Act - would have eliminated parts of Obamacare - the Affordable Care Act - including the individual mandate requiring all Americans to have health insurance coverage, as well as a tax on medical devices.
The stripped down bill came after earlier Senate defeats for proposals to replace Obamacare and then to partially repeal it.
Sen McCain said he had voted against the skinny repeal because it did not amount to meaningful reform and would not have improved care for Americans.
He added that House Speaker Paul Ryan's assurance that the House would be willing to send the bill for further consideration by committee "did not ease my concern that this shell of a bill could be taken up and passed at any time".
What now for Obamacare?
There are not thought to be any further plans for a new bill to repeal Obamacare because the skinny repeal was seen as the bare minimum that Republicans could agree on.
Following the vote, President Trump tweeted: "As I said from the beginning, let ObamaCare implode, then deal."
Mr Trump's position on healthcare reform has varied - he has spoken out at various points for Obamacare being repealed, repealed and replaced, or being allowed to collapse by itself.
In his statement, Mr McCain said Obamacare was in a state of "collapse", with healthcare premiums "skyrocketing" and providers "fleeing the marketplace".
He criticised the way Obamacare had been passed by Democrats using their Obama-era majority and called for senators to "return to the correct way of legislating" with input from both parties.
"We must do the hard work our citizens expect of us and deserve," he said.