Senator Cruz took 28 per cent of the Republican vote beating frontrunner Donald Trump.
Florida senator Marco Rubio had a strong night, defying the polls to run a close third.
With 98 percent of precincts reporting Mr. Trump 24 percent and Mr. Rubio 23 percent.
Meanwhile Hillary Clinton claimed victory after an extremely close result meant she only narrowly beat socialist senator Bernie Sanders.
In at least six precincts across Iowa Democratic caucus votes ended in a tie, forcing a coin toss to decide which candidate would win a county delegate.
Mrs. Clinton won all of these – securing her a narrow lead.
Iowa vote is the first indication of who the American public may choose as their Presidential candidates.
In a victory speech in Des Moines, Senator Cruz told crowds: “God bless the great state of Iowa … To God be the glory.”
He added: “Iowa has sent notice that the Republican nominee and the next president of the United States will not be chosen by the media, will not be chosen by the Washington establishment, will not be chosen by the lobbyists, but will be chosen by the most incredible, powerful force — where all sovereignty resides in our nation — by we the people, the American people”.
Mr Trump conceded defeat in the vote, and congratulated Senator Cruz: “And we finished second, and let me tell you something, I’m honoured, I’m just honoured … We’re just so happy with the way everything’s worked out.
“I think I might come here and buy a farm,” he added.
A spokesman for Hillary Clinton said: “Hillary Clinton has won the Iowa Caucus. After thorough reporting – and analysis – of results, there is no uncertainty and Secretary Clinton has clearly won the most national and state delegates. Statistically, there is no outstanding information that could change the results and no way that Senator Sanders can overcome Secretary Clinton’s advantage.”
Candidates will now move on to New Hampshire for the first primary vote on Feb. 9.