CHICAGO -- Jon Garland provided a near-perfect start, then the Chicago White Sox withstood some shaky work by the bullpen.
Garland retired his first 19 batters and allowed just two hits in seven innings, pitching the White Sox past the Seattle Mariners 6-4 on Friday night.
The right-hander, Chicago's No. 5 starter, lost his bid for a perfect game when he walked Jeremy Reed on a 3-2 pitch with one out in the seventh. Adrian Beltre followed with a single up the middle on a 1-2 pitch for Seattle's first hit.
"If you say you don't know about it, you're lying to them," Garland said. "I knew it was there. Me and (Mark) Buehrle actually said something about it on the bench.
"If it's meant to happen it's going to happen. It's just one of those things," he said.
After Garland (2-0) walked Raul Ibanez, loading the bases, Bret Boone singled to right to drive in two runs. Garland, who struck out three, made it through the seventh before he was lifted for Luis Vizcaino.
"I didn't lose focus," Garland said. "I just started jumping at the plate a little bit. My mechanics got a little out of whack. I was trying to aim the ball a little bit instead of just throwing it."
Boone drove in all four Seattle runs with two singles.
"Garland pitched great," he said. "The ball was moving more than I've seen it before. His sinker was darting all over the place."
Garland's performance, which included 10 groundouts, was almost undone by the Chicago bullpen.
The White Sox used four relievers in the ninth: Vizcaino, Damaso Marte, Shingo Takatsu and Dustin Hermanson.
Boone's two-run single off Takatsu cut it to 6-4 with one out, but Hermanson finished for his second save. He struck out Scott Spiezio and retired pinch-hitter Greg Dobbs on a grounder with the bases loaded to end it.
"It was unbelievable watching a guy pitch like that," Hermanson said. "It's more fun to come in and save the game for someone like that who pitched so good."
Chicago's Juan Uribe, batting ninth, drove in four runs with a two-run homer, a single and a sacrifice fly. Jermaine Dye added a solo shot.
Seattle's Joel Pineiro (0-1) started for the first time since July 25, 2004, and allowed five runs and seven hits in 5 2/3 innings. He walked four and struck out five.
The right-hander had been on the disabled list with a strained right elbow. He was activated before the game.
"My arm felt great, that's all I'm worried about," Pineiro said. "I just didn't have the command I wanted to have.
"My arm felt like a million bucks, but my performance was like a penny," he said.
Pineiro was relieved in the sixth by Matt Thornton, who pitched 1 1/3 scoreless innings. Jeff Nelson worked the eighth, allowing an RBI grounder by Joe Crede.
The White Sox took a 1-0 lead without a hit in the second when Pineiro ran into control problems. He walked the bases loaded with one out, and Uribe hit a sacrifice fly.
Uribe lined a homer to left with two outs in the fourth to extend Chicago's lead to 3-0.
Dye led off the sixth with a homer into the left-field bullpen to make it 4-0. Two outs later, Uribe's single drove in Aaron Rowand, who tripled.
Pineiro made two minor-league rehab starts in April before rejoining the Mariners. ... Seattle's Richie Sexson was scheduled to DH, but was scratched 30 minutes before the game with the flu. He was one of seven or eight Mariners with symptoms. ... Carl Everett was back at DH for the White Sox. He left Thursday's game in Cleveland after running into the left-field wall.