After trailing in the polls, Texas Senator Ted Cruz has won the Iowa Republican Caucus, beating frontrunner Donald Trump.
Analysts say the billionaire businessman failed to turn support among blue-collar workers into votes.
Florida Senator Marco Rubio put in a strong performance - with 23 percent of the vote - and is now the favourite to win the Republican nomination.
On the Democrats' side, former Secretary of State Hillary Clinton and Vermont Senator Bernie Sanders were virtually tied with 99 percent of the votes counted before Clinton edged out Sanders by 0.2 percent.
But the numbers reveal a huge generational divide.
Entrance polls suggest 74-year-old Sanders inspired younger voters with his message of change. He won 84 percent of Democrats under the age of 30.
Clinton is the establishment candidate and her support was highest among older voters - 69 percent of people aged 65 and older voted for her.
So what does Iowa tell us about the race for the White House?
Presenter: Jane Dutton
Joe Watkins - Former White House Aide to President George H.W. Bush.
Ryan Grim - Washington Bureau Chief for the Huffington Post.
James Boys - Author of 'Hillary Rising'.
Source: Al Jazeera