It emerged earlier today that the 34-year-old was undergoing a medical at the Championship club.
The frontman recently claimed that he was unhappy with the lack of first-team football at the Lancashire club, causing rumours of a possible switch away from Ewood Park.
Chairman Sir John Madejski told the club's official website: "I am delighted that a man of Jason Roberts's calibre has decided to sign for Reading Football Club. He will bring enormous experience to the club, and I wish him every success in helping his new teammates."
Roberts will wear the number 33 shirt.