Фредди Гуарин начал карьеру в клубе «Энвигадо». Через год после дебюта в основном составе команды, Гуарин был арендован аргентинским клубом «Бока Хуниорс», где сыграл 2 игры. Большую часть времени в «Боке», Гуарин выступал за молодёжный состав клуба. Лишь травмы игроков основы команды, Себастьяна Баттальи и Фернандо Гаго позволили дебюту Гуарина состояться.
В апреле 2006 года «Бока» предприняла попытку выкупить трансфер Гуарина за 500 тыс. евро, однако тот предпочёл уехать во Францию, в клуб «Сент-Этьен». Он дебютировал в составе команды 14 октября в матче Лиги 1 с клубом «Лионом», в котором его клуб проиграл 1:2. В марте 2007 года Гуарин забил свой первый мяч за «Сент-Этьен», поразив ворота «Труа».
11 июля 2008 года Гуарин перешёл в клуб «Порту», подписав контракт на 4 года.
31 января 2012 года Гуарин на правах аренды перешел в миланский «Интер». Стоимость трансфера составила 1 млн евро, причем «нерадзурри» смогут выкупить игрока по окончании сезона за 11 млн.
С молодёжной сборной Колумбии Гуарин в 2005 году выступал на чемпионате мира, где его команда заняла 3-е место. Сам Гуарин провёл на турнире все 6 игр. До этого, в 2003 году, Гуарин со сборной до 17 лет занял 4-е место на чемпионате мира среди юношей.
24 мая 2006 года Гуарин дебютировал в составе первой сборной в матче против Эквадора. В том же году он выиграл в составе сборной игры Центральной Америки и Карибского бассейна.