Гуарін почав кар'єру в клубі «Енвігадо». Через рік після дебюту в основному складі команди, Гуарін був орендований аргентинським клубом «Бока Хуніорс», де зіграв 2 гри. Велику частину часу в Аргентині Гуарін виступав за молодіжний склад клубу. Лише травми гравців основи команди дозволили дебюту Гуарін відбутися.
У квітні 2006 року «Бока Хуніорс» зробив спробу викупити Гуаріан за 500 тис. євро, проте той волів виїхати до Франції, до клубу «Сент-Етьєн». Він дебютував у складі команди 14 жовтня в матчі Ліги 1 проти «Ліону», в якому його клуб програв 1:2. У березні 2007 року Гуарін забив свій перший м'яч за «Сент-Етьєн», вразивши ворота «Труа».
11 липня 2008 року Гуарін перейшов в клуб «Порту», підписавши контракт на 4 роки [1]. За три з половиною роки в португальському клубі Фредді двічі став чемпіоном країни, по три рази вигравав національний кубок та суперкубок, а також у 2011 році виграв Лігу Європи, зігравши, в тому числі, і у фінальному матчі.
31 січня2012 року Гуарін на правах оренди перейшов у міланський «Інтернаціонале». Вартість трансферу склала 1 млн євро, причому «нерадзуррі» зможуть викупити гравця після закінчення сезону[2]. 17 травня2012 року «Інтер» викупив його контракт за 11 млн євро[3]. Всього за міланський клуб колумбієць провів 141 матч в усіх турнірах, в яких забив 23 голи.
27 січня2016 року Гуарін перейшов в китайський клуб «Шанхай Шеньхуа». Портал transfermarkt.com повідомляє, що Гуарін обійшовся китайцям в 13 млн. євро. За інформацією Sky Italia, зарплата 29-річного хавбека складе близько € 7-8 млн. євро на рік[4].
Міжнародна кар'єра
З молодіжною збірною Колумбії Гуарін 2005 року виступав на чемпіонаті світу, де його команда посіла 3-е місце. Сам Гуарін провів на турнірі усі 6 ігор [5]. До цього, 2003 року, Гуарін зі збірною до 17 років зайняв 4-е місце на чемпіонаті світу серед юнаків.
24 травня 2006 року Гуарін дебютував у складі першої збірної в матчі проти Еквадору. У тому ж році він виграв у складі збірної гри Центральної Америки і Карибського басейну.
2014 року Гуарін був включений Хосе Пекерманом у заявку на чемпіонат світу[8]. На турнірі дебютував у останньому матчі групового етапу, відігравши всі 90 хвилин в переможному матчі проти Японії (4:1);[9]. У наступному матчі, що відбувся на чотири дні пізніше, Гуарін вийшов на заміну і допоміг збірній пройти Уругвай (2:0). Цей матч став для нього 50 у футболці збірної[10]. Проте вже в чвертьфіналі колумбійці поступились Бразилії 0:1 і покинули турнір.