The 33-year-old was released by the Blades last week.
Kitson, who has also played for Reading, Stoke City and Portsmouth, will officially join Oxford on July 1.
"I had a number of clubs interested but the ambition and set-up here is excellent," he told Oxford's official website.
"It is a good club with a good manager and a very good squad. Oxford is the only League Two club that I considered because at this stage in my career I am looking to be part of a successful promotion campaign."
Kitson scored 12 times in 37 games for Sheffield United last season.