Barfield was in the starting lineup Monday night, going 0-for-4 in Cleveland's 8-2 win over the Detroit Tigers, and will replace Cabrera as the starting second baseman.
"We felt we needed an offensive upgrade at that position," Cleveland manager Eric Wedge said. "Asdrubal has been great defensively, but we felt like this was a good time to give him a chance to get his stroke back."
Barfield was batting .255 with five home runs and 21 RBIs at Buffalo. Last season with the Indians, Barfield hit .243 with three home runs and 50 RBIs.
Cabrera hit .184 in 52 games this season -- 99 points lower than his average last year as a rookie. He turned the 14th unassisted triple play in major league history on May 12.
"I think last year, you are excited about coming up, and you are playing for a team that's going really well, and you just get on a roll," Wedge said. "Then you have to spend the entire winter knowing you have to perform at this level, and the league catches up with you a bit.
"Asdrubal is going to be a very good player -- he's just going to need to go down and regroup."
Information from The Associated Press contributed to this report.