Serie A title-chasers Roma beat a number of rival clubs in the race to sign Radja Nainggolan from Cagliari, the Italian capital's club said in a statement on Tuesday.
Roma will pay three million euros ($4.1 million) for Nainggolan to play the rest of the season on a temporary basis and six million euros from the 2014/2015 season when he will be hired permanently.
The contract runs out in 2018.
After a series of reported bids and counter-bids from Juventus, Milan and Napoli, the Belgian international put pen to paper with Roma.
Roma enjoyed a cracking start to the season under new coach Rudi Garcia, setting a Serie A record of 10 opening wins to underline their title credentials before a series of draws saw them slip behind leaders Juventus.
Champions Juventus currently have an eight-point lead over Roma with Napoli a further two points off the pace.
Nainggolan, born in Belgium to an Indonesian father and Belgian mother, has played four times for his national side and is scheduled to make his World Cup debut at Brazil 2014 in June.