Updated

James McDonald is done with the how-to portion of spring training. It's time for a can-do approach.

McDonald held Houston hitless for 5 1-3 innings Saturday, but the Astros scored an unearned run in the 10th inning to beat the Pittsburgh Pirates 5-4.

McDonald has two more exhibition starts before his first regular-season debut April 8 against the Philadelphia Phillies at PNC Park.

"For me, it's not time to start working on things," McDonald said. "The time for working on things was earlier. Now, it's time to put that work into game-type situations. I went out there today like it was a regular game and attacked the hitters."

McDonald retired 16 of the first 17 batters he faced — Juan Castro reached on an error in the third inning — until Travis Buck dropped a broken-bat single into shallow center field.

"I didn't know until (the fans) started clapping," McDonald said. "I was like, Why are they clapping? And then I realized I had a no-hitter. I wasn't thinking about that. I was just thinking about keeping the ball down and trying to induce contact early."

McDonald threw 90 pitches over seven innings, his longest outing this spring. He gave up a run on two hits and struck out three.

"James had the complete package out there," Pirates manager Clint Hurdle said. "Really good fastball command. He was able to work the fastball in extremely well and away when he wanted to. The slider was in play, the curveball was there and he threw seven changeups as well. Very efficient, down in the zone."

The Pirates scored twice in the first inning on Neil Walker's two-out, two-run single to right.

Astros starter Kyle Weiland pitched well enough to remain the likely frontrunner for the fifth spot in the rotation. Rebounding from the shaky start, Weiland worked five innings and allowed two runs on six hits, walked two and struck out one.

"If he's not where he needs to be (mechanically), he does a good job of making those adjustments on the mound," Astros manager Brad Mills said. "That's a lot of maturity for a guy like that to be able to do that."

Weiland said he began to wear down in the fifth inning.

"That's what spring training's for, trying to build up your arm strength," Weiland said. "I'm just at that point. Next time I go out, I'll try to set it higher and see if we can get to the sixth or seventh inning."

Garrett Jones hit a two-run homer in the eighth to give the Pirates a 4-1 lead.

In the top of the ninth, Scott Moore hit a three-run homer off Ryota Igarashi to tie it. A fielding error by shortstop Josh Rodriguez allowed Buck to score the winning run in the 10th.

NOTES: Pirates RHP A.J. Burnett threw batting practice for the first time and reported no problems. Burnett is expected to be out until at least early June after having surgery to repair a broken right orbital bone. "I felt strong and had good action on everything," Burnett said after the 40-pitch session. ... The Pirates optioned INF Jordy Mercer to Triple-A Indianapolis and reassigned C Jose Morales, RHP Shairon Martis, LHP Jo-Jo Reyes and LHP Doug Slaten to minor league camp. The Pirates have 35 players left in camp ... Pirates 3B Pedro Alvarez (sore left knee) took batting and fielding practice, but will be held out of games this weekend as a precaution. "Just some minor irritation in my knee," Alvarez said. ... Astros LHP Sergio Escalona will have Tommy John Surgery next week and will miss the entire 2012 season. That might boost LHP Zach Duke's chances of making the team as a long reliever.