Wilson, slated to start the second regular-season game for the Angels, allowed an unearned run on four hits in seven innings, striking out seven and walking two in his final tuneup.
''C.J. looked great,'' Angels manager Mike Scioscia said. ''He worked ahead and it's a great outing for him to get seven innings.''
Gray, set to be the A's opening day starter, allowed a run on one hit with a walk and strikeout in five innings.
''The most important thing is to continue with the routine that I've done all spring training and I feel really good, especially the last two or three times out,'' Gray said.
Angels second baseman Grant Green hit a two-run home run in the seventh and is batting .360 as he makes a final push for a big-league roster spot. Brennan Boesch also homered for the Angels.
Reliever Kevin Jepsen struck out the side with a walk in the ninth to close out the game.
ANGELS: Wilson threw 99 pitches in his start and heads back to California after posting a 1.88 earned run average in six starts.
ATHLETICS: Gray was going to start in a minor-league game until manager Bob Melvin saw the Angels' backups-and-minor-leaguers lineup. Gray ended spring training with a 3.48 ERA in six starts. ''Fun week,'' he said of the next five days until the opener. ''I'm ready.''
Billy Burns is trying to win a roster spot as a reserve outfielder, with his top competition Sam Fuld and Michael Taylor also in the outfield with him on Wednesday. Burns was the only one of the three to get a hit and led the A's in hits with 22 this spring (.310 average).
All four catchers currently on the Oakland roster got into Wednesday's game. Jaso was the starter and Derek Norris opened at designated hitter. Chris Gimenez replaced Jaso and Stephen Vogt came on as the new DH in the sixth.
Angels outfielder Collin Cowgill is competing for the major-league roster as a backup, and he might have helped his cause with a diving catch of sinking fly ball that turned out to be Burns' sacrifice fly.
Matt Long also stated his case on defense. He sprinted in from deep right field into foul territory and slid near the A's bullpen mound to catch a fly ball from Burns in the sixth. Long doubled and drove in a run with a sacrifice fly and is batting .426 in spring training.
The A's played their final spring training game at Phoenix Municipal Stadium on Wednesday and will move to Hohokam Stadium in nearby Mesa for at least the next 20 years starting next spring. Oakland was in Phoenix from 1982 to this year. Three team employees including original equipment manager Steve Vucinich were honored before the game, and Vucinich, who joined the club after their relocation from Kansas City in 1968, threw the first pitch.
''It was a great spot for us, but now we're going to a place that's going to have better upgrades for us, especially inside, which is what we need,'' Melvin said.
ANGELS: Pitcher Dane De La Rosa will start the season on the disabled list due to a forearm injury, but will throw in a minor-league game on Thursday.
ATHLETICS: Outfielder Craig Gentry went 2-for-6 in a minor-league game Tuesday as he returns from a back injury. He'll play again Thursday. Infielder Nick Punto is out until Friday with a hamstring injury.
ANGELS: The Angels head back to Southern California for the annual exhibition Freeway Series, with Hector Santiago slated to pitch against the Los Angeles Dodgers on Thursday. Friday's starter was to be Joe Blanton, but the Angels granted him his release on Wednesday. Blanton will cost the Angels $8.5 million to get rid of his contract.
ATHLETICS: Left-hander Scott Kazmir is scheduled to face the San Francisco Giants in the opener of a three-game exhibition series Thursday. On opening night, Rickey Henderson will throw out the ceremonial first pitch.