Il a commencé sa carrière sur le circuit junior ITF en 2001 et s'est qualifié pour les Jeux olympiques d'été de 2004 à Athènes dans la catégorie des simple messieurs, où il a été éliminé au deuxième tour par Guillermo Cañas.
En 2005, Moreno a fait ses débuts sur le circuit ATP et a remporté son premier titre à Bogota, en battant Santiago González en finale. L'année suivante, il s'est qualifié pour les tournois de Wimbledon et l'US Open et a atteint la 53e place au classement ATP.
En 2007, Moreno a remporté son second titre à Bogota en battant Paul Capdeville en finale, puis il s'est qualifié pour les tournois de Wimbledon et l'US Open pour la deuxième année consécutive. Il a également atteint sa première finale dans un tournoi ATP 250 à Båstad en Suède, où il a été battu par Robin Söderling.
En 2008, Moreno a remporté son troisième titre à Bucarest en Roumanie en battant Carlos Berlocq en finale, puis il s'est qualifié pour la première fois au Masters de tennis masculin après avoir atteint les demi-finales du tournoi de São Paulo. L'année suivante, il a remporté son quatrième titre à Bucarest et a terminé l'année dans le top 50.
En 2010, Moreno a remporté son cinquième titre à Bogota en battant Carlos Salamanca en finale, puis il s'est qualifié pour la deuxième fois au Masters de tennis masculin après avoir atteint les demi-finales du tournoi de Miami. L'année suivante, il a remporté son sixième titre à Quito et a terminé l'année dans le top 30.
En 2012, Moreno a remporté son septième titre à Bucarest en battant Victor Crivoi en finale, puis il s'est qualifié pour la troisième fois au Masters de tennis masculin après avoir atteint les demi-finales du tournoi de Miami.
En 2013, Moreno a remporté son huitième titre à Quito en battant Thiago Alves en finale, puis il s'est qualifié pour la quatrième fois au Masters de tennis masculin après avoir atteint les demi-finales du tournoi de Miami.
En 2014, Moreno a remporté son neuvième titre à Bogota en battant Facundo Bagnis en finale, puis il s'est qualifié pour la cinquième fois au Masters de tennis masculin après avoir atteint les demi-finales du tournoi de Miami.
En 2015, Moreno a remporté son dixième titre à Quito en battant Paolo Lorenzi en finale, puis il s'est qualifié pour la sixième fois au Masters de tennis masculin après avoir atteint les demi-finales du tournoi de Miami.
En 2016, Moreno a remporté son onzième titre à Bogota en battant Alejandro González en finale, puis il s'est qualifié pour la septième fois au Masters de tennis masculin après avoir atteint les demi-finales du tournoi de Miami.
En 2017, Moreno a remporté son douzième titre à Bucarest en battant Radu Albot en finale. Il s'est également qualifié pour la huitième fois au Masters de tennis masculin après avoir atteint les demi-finales du tournoi de Miami.
En 2018, Moreno a remporté son treizième titre à Bogota en battant Nicolás Jarry en finale, puis il s'est qualifié pour la neuvième fois au Masters de tennis masculin après avoir atteint les demi-finales du tournoi de Miami.
En 2019, Moreno a remporté son quatorzième titre à Bucarest en battant Márton Fucsovics en finale. Il s'est également qualifié pour la dixième fois au Masters de tennis masculin après avoir atteint les demi-finales du tournoi de Miami.
En 2020, Moreno a remporté son quinzième titre à Bogota en battant Federico Delbonis en finale. Il s'est également qualifié pour la onzième fois au Masters de tennis masculin après avoir atteint les demi-finales du tournoi de Miami.
En 2021, Moreno a remporté son seizième titre à Bucarest en battant Facundo DÃaz Acosta en finale. Il s'est également qualifié pour la douzième fois au Masters de tennis masculin après avoir atteint les demi-finales du tournoi de Miami.
Moreno est un joueur droitier qui frappe le ballon avec deux mains, et il est connu pour son jeu agressif sur la terre battue. Il a également représenté la Colombie à la Coupe Davis en 2013 et 2015.