Donald Trump was leading in polling ahead of the vote but is likely to finish in second place.
Florida Senator Marco Rubio appears to have performed far better than expected, and will probably finish in third place.
The Votes in the Democratic race are still being counted.
With 85% of results in, frontrunner Hillary Clinton and self-proclaimed Democratic socialist Bernie Sanders are less than 1% apart.
Speaking after the results, Marco Rubio congratulated Mr Cruz and said he was the candidate who could unify the divided Republican party.
Just minutes after that, Mr Trump took to another stage where he too congratulated the Texas senator, and said he was “honoured” by the second-place finish.
At least two candidates are dropping out following the results.
Texas Sen. Ted Cruz defeated businessman Donald Trump in the Iowa caucuses on Monday, a come-from-behind victory that raises questions about the billionaire’s ability to translate his support in polls into actual votes.
The businessman responded with a torrent of criticism directed at the Texan. Trump questioned whether Cruz is even eligible for the presidency, citing his birth in Canada.
Cruz, arguing that he is eligible because his mother was a U.S. citizen, responded by questioning Trump’s commitment to conservatism, citing his past support for Democratic candidates and causes
Trump barely held off Florida Sen. Marco Rubio, who was poised to finish third, according to late returns.