The Potters made their move for the 31-year-old, who is out of contract in the summer, after Darren Bent's £18million arrival at Villa Park pushed the Norway international further down the pecking order.
Carew completed his medical on Thursday and finalised the paperwork on Friday morning in time to be included in the squad for Saturday's Barclays Premier League trip to Fulham.
"This is a fantastic signing," Potters manager Tony Pulis told stokecityfc.co.uk.
"John's record speaks for itself because he has scored goals at the highest level throughout his career.
"As well as the experience he has gained at international level he has played for some top clubs across Europe and performed in the Champions League for many seasons, including an appearance in the final for Valencia.
"On top of that he was Aston Villa's leading scorer last season with 17 goals so we have acquired a striker with an outstanding pedigree."
Source: PA
Source: PA