The deal was announced on Stoke's official website, with the Championship club confirming the fee could rise to £3million.
A club statement read: "We have rejected two transfer offers from Sunderland since their interest became apparent in the summer.
"It was made clear to Danny that we very much wanted him to stay and he was made two contract offers, the last one being a new four-year contract.
"Danny has now submitted a written transfer request and has stated that he no longer feels he can be committed to the club.
"This offer amounts to a guaranteed £2.5million, along with an additional possible further £500,000 dependant on both Sunderland's and Danny's performance.
"We are hugely disappointed to lose Danny, however it is difficult to keep a player who no longer wants to play for you."