After months of tit-for-tat barbs, a highly anticipated meeting between US President Donald Trump and his Colombian counterpart, Gustavo Petro, has ended cordially.

According to Petro, the two men discussed the possibility of exporting Venezuelan gas through Colombia as well as shared interests in fighting drug trafficking in the region. Trump described Petro as "terrific".

While the meeting, which lasted about two hours, took place behind closed doors, photos suggested the encounter was friendly.

Trump previously called the Colombian leader a "sick man", while Petro recently said the US president was basing his immigration policy on "the Nazis".

The acrimony had stoked speculation that Tuesday's meeting could see a repeat of the kind of altercation that unfolded a year ago in the Oval Office between Trump and Ukrainian President Volodymyr Zelensky.