DeRosa, who the Indians acquired from the Chicago Cubs in a trade last offseason, was hitting .270 with 13 homers and 50 RBIs.
DeRosa was in the Cardinals' lineup as the left fielder, batting fourth in Sunday's game against the Twins, according to the St. Louis Post-Dispatch.
DeRosa goes from the Indians, who have the worst record in the American League, to the Cardinals, who are tied with Milwaukee for first place in the National League Central.
"You want to hit the rewind button here," DeRosa said of the Indians' disappointing season. "From a selfish standpoint, I get to battle for a division title again and I'm in a good position with a great team."
DeRosa started at second base for Chicago last season, helping the Cubs to the division title. Ironically, he will now be joining the Cubs' bitter rival. DeRosa can play all over the infield, which makes him a perfect fit for the Cardinals. St. Louis has been trying to fill at hole at third base this season because Troy Glaus has been out with an injured shoulder.
Cardinals manager Tony La Russa has also been juggling middle infielders for much of the season.
DeRosa didn't play in the Indians' 7-3 loss to Cincinnati. The trade was announced immediately after the game.
"We felt the time was right to maximize the value Mark had," Indians general manager Mark Shapiro said.
Perez, who turns 24, on July 1, has a 4.18 ERA in 29 appearances with a 1-1 record and one save. Shapiro hopes he can help Cleveland's beleagured bullpen, which is a major reason the Indians are 31-45.
"He throws 93 to 95 [mph]," Shapiro said. "He had back end stuff and the ability to get a strikeout."
Shapiro expects Perez to join the team Monday. Infielder Asdrubal Cabrera will be activated from the disabled list Sunday to take DeRosa's roster spot.
Information from The Associated Press was used in this report.