Piacenza Nainggolan began playing football with
Tubantia Borgerhout at the age of five. Seven years later, he moved to the youth team of
Germinal Beerschot, where he remained until 2005 to move to Italian
Serie B club
Piacenza. He made his senior debut on 28 May 2006 during a home defeat to
Arezzo, being inserted permanently into the first team the following season. In the
2008–09 campaign, Nainggolan became a starter for the
Emilia-Romagna side, playing 38 of 42 games and scoring three goals, which contributed to them avoiding relegation.
Cagliari On 27 January 2010, Nainggolan was loaned to
Cagliari with a
buyout clause. He made his
Serie A debut on 7 February, playing seven minutes in a 3–0 away loss against
Inter Milan. After making seven appearances (including being
sent off a few minutes after
entering the field on 28 February against
Chievo), the club announced it had acquired 50% of his rights in a
co-ownership deal. In the first part of
2010–11, under manager
Pierpaolo Bisoli, Nainggolan started often due to the absence of
Daniele Conti. On 31 October 2010 he scored his first goal in the Italian top division, from a right-footed volley in a 2–0 home win over
Bologna. On 31 January 2011, Cagliari redeemed the second half of his contract from Piacenza. In early October 2013, after three seasons as an undisputed first-choice, Nainggolan agreed to an extension until 2016. His performances with the
Rossoblu made him especially popular among their fans, who named him in a top 11 list comprising the best players in the history of the Sardinian club.
Roma in 2014 On 7 January 2014, Nainggolan was loaned to fellow top-flight team
Roma until the end of
the campaign for a fee of
€3 million, with an option to purchase 50% of his rights in the ensuing summer for €6 million. He made his debut two days later, starting in a 1–0 home victory over
Sampdoria for the
Coppa Italia which qualified for
the quarter-finals. In the same competition, he also helped dispose of
Juventus in said stage by playing the full 90 minutes at the end of the month. On 22 February 2014, Nainggolan scored his first goal for the capital side, grabbing the 1–0 winner against Bologna. His second, which arrived on 19 April against
Fiorentina (same result), ensured his team
automatic qualification for the
UEFA Champions League. Nainggolan signed a permanent deal with Roma in the 2015 off-season, for €9 million. On 6 July 2016 he renewed his contract until June 2020, extending it a further year the following summer.
Inter Milan On 26 June 2018, Nainggolan signed with Inter Milan for €38 million (€24 million plus
Davide Santon and
Nicolò Zaniolo, valued at €14 million) until June 2022. He scored in his league debut on 1 September, helping the visitors defeat Bologna 3–0, and just over a month later he netted the equaliser in a 2–1 comeback win at
PSV in the
Champions League group stage to become the first-ever Belgian to score for the club in the competition. In August 2019, Nainggolan returned to Cagliari on a
season-long loan. He was named the league's
MVP for November, with two long-range goals and three assists in three matches to help his team to reach fourth place. Nainggolan returned to the
Sardegna Arena on 31 December 2020, again on loan.
Antwerp On 10 August 2021, Inter Milan announced that Nainggolan's contract with the club had been terminated by mutual consent; four days later, the 33-year-old signed a two-year deal with
Royal Antwerp. He made his debut in
his country's First Division on 22 September, starting in the 4–2 home victory against
Genk. His first goal in the competition was the game's only away to neighbours Beerschot on 5 December, and he dedicated the goal to his late mother whose honour had been insulted by the local fans. In December, he left by mutual consent.
SPAL After weeks of speculation, on 30 January 2023 Nainggolan officially joined Italian second-tier club
SPAL, coached by former Roma team-mate and friend
Daniele De Rossi, on a
free transfer, signing a five-month contract with an option for one more season in case of promotion. Not only was this not achieved, they were
relegated as second-bottom.
Bhayangkara In late November 2023, Nainggolan agreed to a deal at
Bhayangkara, being acquired in an effort from the side to avoid relegation from the
Liga 1 by replacing several foreign players. He was under contract for the remainder of
the season, and was reported to be earning
IDR 1 billion per month with a bonus of IDR 416 million per appearance; in his first press conference, he admitted that he was not aware of an Indonesian league but would "give his best so that Bhayangkara can remain in Liga 1." After failing to appear in the previous match against
PSM Makassar, Nainggolan made his debut as a substitute on 17 December in a 3–0 win over
Persita Tangerang, his team's first in 17 league games. He scored his only goal on 16 March 2024, in a 2–3 home defeat to
Dewa United.
Later career On 21 January 2025, Nainggolan signed for
Challenger Pro League club
Lokeren-Temse on a five-month deal. On his debut, he scored an
Olympic goal in a 1–1 home draw against
Lierse. For the second part of the
2025–26 season, Nainggolan moved to fellow second-tier
Patro Eisden. ==International career==