Ibrahim Afellay zawodową karierę rozpoczął w 2003 w PSV Eindhoven. W jego barwach zadebiutował 4 lutego 2004 w przegranym 0:1 spotkaniu przeciwko NAC Breda w Pucharze Holandii. W Eredivisie po raz pierwszy wystąpił 14 lutego w pojedynku z FC Twente. W debiutanckim sezonie Afellay wystąpił w lidze tylko dwa razy, natomiast w kolejnych ligowych rozgrywkach zaliczył siedem występów. Wówczas w linii pomocy PSV grali zazwyczaj Mark van Bommel, DaMarcus Beasley, Phillip Cocu, Park Ji-sung oraz Johann Vogel. 15 maja 2005 Afellay w meczu przeciwko Feyenoordowi rozpoczął spotkanie w pierwszym składzie i zdobył swoje dwie pierwsze bramki dla ekipy "Boeren". Latem 2005 Mark van Bommel odszedł z PSV do FC Barcelona, a jego następcą w drużynie miał zostać właśnie Afellay. 13 września młody Holender zadebiutował w rozgrywkach Ligi Mistrzów, a PSV zwyciężyło 1:0 z FC Schalke 04. W sezonie 2005/2006 Afellay był podstawowym zawodnikiem swojego zespołu, wystąpił łącznie w 23 spotkaniach Eredivisie i zdobył w nich dwie bramki. Najlepszą skuteczność prezentował jednak w kolejnych rozgrywkach, kiedy to dzięki strzeleniu sześciu goli został jednym z najlepszych strzelców PSV. Razem z drużyną "Boeren" holenderski gracz odniósł już wiele sukcesów – cztery razy sięgnął po tytuł mistrza kraju, natomiast jeden raz zwyciężył w krajowym pucharze oraz superpucharze. 30 sierpnia 2008, w inauguracyjnym meczu sezonu 2008/2009 Afellay zaliczył dwa trafienia w pojedynku przeciwko FC Utrecht, a PSV zwyciężyło 5:1.
15 listopada 2010 poinformowano, że kluby PSV Eindhoven i FC Barcelona potwierdziły transfer Afellaya do hiszpańskiego klubu. Zawodnik podpisał kontrakt 24 grudnia 2010 obowiązujący do 2015 za kwotę 3 milionów euro. W hiszpańskim zespole będzie występował z numerem 20, takim samym, jak podczas gry przy Philips Stadion.
Afellay pierwszy mecz w Barcelonie zagrał z Athletic Bilbao zmieniając Davida Villę w 90 minucie doliczone zostały 3 minuty. Pierwszego gola dla zespołu z Katalonii strzelił w półfinale Copa del Rey przeciwko Almerii. Został wypożyczony na sezon 2014/2015 do greckiego klubu Olympiakos SFP.
Dzięki marokańskim korzeniom Afellay miał do wyboru grę dla reprezentacji Holandii oraz reprezentacji Maroka. Ostatecznie zdecydował się występować w barwach zespołu "Oranje", pomimo że rywalizacja o miejsce w linii pomocy była tam o wiele większa niż w drużynie Maroka. Po raz pierwszy do zespołu narodowego Holandii Afellay został powołany 8 października 2005 przez Marco van Bastena na spotkania z Czechami i Macedonią. W żadnym z tych meczów Holender jednak nie wystąpił. W drużynie narodowej zadebiutował dopiero 28 marca 2007 w wygranym 1:0 pojedynku przeciwko Słowenii w ramach eliminacji do Euro 2008. Następnie znalazł się w 23-osobowej kadrze powołanej przez Marco van Bastena na mistrzostwa Europy. Na turnieju wystąpił w trzech spotkaniach – grupowych z Włochami i Rumunią oraz ćwierćfinałowym przeciwko Rosji. Pojechał także na MŚ 2010 ale zagrał tylko w trzech spotkaniach jako zmiennik.