Barnes struck out four over 5 1/3 hitless innings Tuesday, pitching the Akron Aeros to a 2-0 blanking of the Altoona Curve.
The 22-year-old left-hander entered with a 7.20 ERA but picked up his first win in seven starts this season. He was acquired from the Giants last July for Ryan Garko.
"When I was struggling, I was pretty much fastball-dominant," said Barnes, Cleveland's eighth-round pick in the 2008 Draft. "I've tried to develop more of a habit of throwing more of my pitches for strikes and just keeping all my pitches in the zone."
Barnes (1-4) exited in the sixth, after issuing his fourth walk. Steven Wright walked the bases loaded with two outs but retired Josh Harrison on a fly ball to end the threat.
Omar Aguilar surrendered a leadoff single in the eighth to former Midwest League MVP Gorkys Hernandez.
"It was a good hit, he got the barrel on the ball," Barnes said. "I couldn't have asked for anything else from the guys who backed me up. I thought they did a great job."
Aguilar got the last six outs for his first save of the season after Aeros closer Vinnie Pestano was promoted to Triple-A Columbus.
Former second-round pick Matt McBride slugged a two-run homer in the sixth to provide the offense for Akron (15-23).
Justin Wilson (1-4) took the loss, despite allowing two runs on five hits with six strikeouts in 5 2/3 innings.