Oakland made the moves before the start of a four-game series at Texas.
Willingham was in the starting lineup, batting fourth and playing left field, in the makeup of a May 11 game that was rained out after Texas built a 7-0 lead through four innings. He had been out since June 18 with a left Achilles strain.
Manager Bob Melvin said there was no hesitation about putting Willingham back in the outfield right away.
"That's the reason we went the extra yard. If it was an issue and I was only able to DH him, we probably wouldn't have activated him," Melvin said.
Balfour was out since June 22 with a strained right oblique. He had allowed only one earned run over 10 innings in his final 10 appearances before getting hurt.
Moscoso (3-4) was sent down a day after allowing only two hits over seven innings in a 2-0 win over the Seattle Mariners. He had a 2.16 ERA over his 10 games for Oakland (eight starts), but the A's don't need a fifth starter until after July 19 after the All-Star break.
"There's no more starts for him until the end of the first half. I couldn't use him in long relief here because he's just thrown a lot of pitches," Melvin said. "You can't promise anybody anything but certainly he's pitched well enough to be on this team and we consider him part of this team."
Melvin said Moscoso was disappointed about being optioned to the minors, where he will likely pitch July 14.
"I tried to spell it out for him and he understood he was basically unusable in this series," Melvin said. "In this ballpark in a four-game series, you need pitching. We still have an eight-man bullpen and it's important to have. But I'd expect him to be disappointed. You pitch that well and get sent down, it's disappointing. I feel bad for him."