Bernie Sanders narrowly won New Hampshire's Democratic presidential primary, solidifying his front-runner status in the race to take on Donald Trump and dealing a setback to moderate rival Joe Biden, who finished a disappointing fifth.
Pete Buttigieg, a former mayor of South Bend, Indiana, who edged out Sanders in last week's messy Iowa caucuses, came in a close second after splitting much of the centrist vote with senator Amy Klobuchar.
Sanders, a progressive senator from neighboring Vermont, prevailed after fending off attacks from rivals who claimed his left-wing views would lead the party to defeat in the November 3 election against Republican Trump.
"This victory is the beginning of the end for Donald Trump," Sanders declared in Manchester, New Hampshire.
In a sign of growing rivalry between Sanders, a 78-year-old self-professed democratic socialist, and Buttigieg, a 38-year-old moderate, Sanders' supporters booed when Buttigieg's post-primary speech was shown on screens.
It was a good night for Klobuchar, who rode a wave of momentum from a strong debate on Friday into a third-place finish.
Senator Elizabeth Warren, rated a favorite in New Hampshire until a few months ago, came fourth, casting further doubt over her viability as the progressive alternative to Sanders.
The two senators have vowed to tax the rich, eliminate private health insurance in favor of universal state-run health care and take on Wall Street and corporate corruption.
Sanders had 26 percent of the vote and Buttigieg 25 percent with most precincts counted. Klobuchar had 20 percent, Warren 9 percent and Biden 8 percent.
But they all face competition from Michael Bloomberg, the billionaire former New York mayor who is skipping the four early voting states and pouring resources into larger states like California that will vote on March 3, known as "Super Tuesday."