He joins former England defender Rio Ferdinand in boosting the defensive options for the promoted west London side, and is reunited with manager Harry Redknapp, who gave him his debut when both were at Tottenham Hotspur.
The 22-year-old joined Cardiff from Spurs last season, playing every match as they were relegated to the second-tier Championship.
"I am very excited to be here," Caulker told the club website (www.qpr.co.uk). "It was important for me to be back playing in the Premier League, and Harry Redknapp has given me the opportunity to be at this fantastic club.
"Harry was a big factor for me, having worked with him at Tottenham. He was very keen for me to join and that was a big plus, knowing the manager wants you.
"Being able to play with Rio was also a big draw. He has been a role model of mine for many years, along with Ledley King. To have the opportunity to play alongside him was something I felt I couldn't miss out on.
"Our first aim this season has to be to get to 40 points, to make sure we stay up. That's our first goal."
Caulker has made one appearance for England, scoring against Sweden in 2012.
No transfer fee was announced.
"I know the ability he has and I think it's an important signing for the club - for the here and now, and for the future," Redknapp said.
"I had him at Tottenham and I was very surprised when they decided to let him go last summer, because I thought he had a big future there."
- Sports & Recreation
- Harry Redknapp
- Rio Ferdinand
- Tottenham Hotspur
- Premier League