Портильо — воспитанник «Реал Мадрида». За юношеские команды «сливочных» он забил более 700 голов, что является лучшим результатом в истории клуба. Многие считали его футболистом, более талантливым чем Рауль. За основную команду «галактикос» Хавьер дебютировал 20 марта 2002 года, выйдя на замену Фернандо Морьентесу в гостевом матче второго группового этапа Лиги чемпионов против «Панатинаикоса». В той же игре он забил свой первый гол, поразив сильным ударом с 25 метров ворота Адониса Никополидиса, установив тем самым окончательный счёт 2:2. В следующем сезоне во всех турнирах за «Реал» Портильо провёл 23 игры, в которых отличился 14 раз, оформив, среди прочего, дубль в дебютной для себя игре в Примере, однако в сезоне 2003/04 на его счету числились лишь 2 мяча в 29 встречах. При этом 3 октября 2003 года клуб продлил с ним контракт до июня 2007 года, установив сумму отступных за игрока в размере ?36 000 000. За этот период в составе клуба он выиграл Межконтинентальный кубок, Лигу чемпионов, Суперкубок УЕФА, Суперкубок и чемпионат Испании. Летом 2004 года новый тренер «Реала» Хосе Антонио Камачо решил отдать Хавьера, на которого он не рассчитывал, в аренду: из двух вариантов с лондонским «Арсеналом» и итальянской «Фиорентиной» был выбран второй.
Руководство «фиалок» лишь полгода смогло арендовывать испанца, забившего в 18 играх 4 гола за клуб, так как им необходимо было разгружать бюджет для покупки Адриана Муту. К тому же, полсе продажи Морьентеса в «Ливерпуль» новому тренеру мадридцев Вандерлею Лушембурго был нужен четвёртый нападющий после Роналдо, Рауля и Майкла Оуэна. Безрезультатно появившись в 4 играх команды в том сезоне, Портильо был отдан в аренду на сезон 2005/06 в бельгийский «Брюгге», хотя были варианты с «Пармой» (на замену Альберто Джилардино), «Сарагосой» (на замену Давиду Вилье), а также «Бетисом» и «Малагой». В сезоне 2005/06 Портильо с «сине-чёрными» занял непривычно низкое для клуба третье третье место в чемпионате и финишировал третьим в групповом турнире Лиги чемпионов, забив по голу в ворота «Баварии» и венского «Рапида», а также отличившись в проигранном противостоянии с «Ромой» в 1/16 финала Кубка УЕФА.
Летом 2006 года новичок примеры «Химнастик» из Таррагоны приобрёл Портильо у «Реала», оставив за сливочными право первого выкупа нападающего. 11 голов Хавьера в чемпионате 2006/07 не помогли «Настику» сохранить прописку в элитном дивизионе, что побудила форварда искать новую команду, которой стала «Осасуна», предложившая свой четырёхлетний контракт.
Cо второй половины сезона 2009/10 Портильо играет за «Эркулес» из Аликанте, вместе с которым они вышли в тот же год в Примеру и заняли там предпоследнее, лишающее права играть в «элите» место.
В Сегунду Хавьер вернулся в составе «Лас-Пальмаса».
В составе молодёжной сборной Испании в 2002—2003 годах Портильо провёл 10 игр, в которых забил 5 мячей, но на свой чемпионат Европы то поколение не попало.
Как игрока «Реал Мадрида»:
Как игрока «Брюгге»:
Как игрока аликантского «Эркулеса»:
Как игрока «Брюгге»: