MIAMI -- Scott Olsen came within a strike of his first complete game. He happily settled for a victory.
The Marlins haven't thrown a complete game since Sept. 16, 2006, and when Olsen walked pinch-hitter Joe Dillon on a 3-2 pitch to load the bases with two outs in the ninth, manager Fredi Gonzalez walked to the mound and signaled to the bullpen.
"I told Fredi when he came out there, I said, `I'm going to get one for you,' and I handed him the ball," said Olsen (4-1). "Not tonight, but I'm going to get him one."
The Brewers have totaled six runs in four games against Florida this season, and Olsen has pitched 16 scoreless innings against them.
"He pitched a great game, man," Milwaukee manager Ned Yost said. "It was one of those nights where you matched up against a guy who was really on top of his game."
Keeping the Brewers off balance with his changeup, Olsen struck out eight, walked four and lowered his ERA to 2.22. Last year he had an ERA of 5.81, the highest of any pitcher in the National League with at least 162 innings.
Olsen threw 121 pitches, 77 for strikes, and became the first left-handed starter to beat the Brewers this season.
"Once we got rolling in the game, about the third or fourth, I felt I could go a long way," Olsen said. "I had success early and just tried to keep building on that."
Olsen threw 100 pitches in the first eight innings. He gave up a leadoff walk and a two-out single in the ninth, then allowed another walk with his final pitch after Dillon fouled off a pair of 3-2 deliveries.
The 8 2/3-inning outing was the longest of Olsen's 75 career starts.
"It was a great performance," Gonzalez said. "You can't ask for any more - well, I guess a complete game would be the next step."
Added Marlins outfielder Luis Gonzalez: "He knows now he's capable of doing it. Those guys are pretty good hitters over there, and he pretty much shut them down."
Gonzalez matched a career high with four hits in four at-bats and drove in a run for Florida. The game drew only 10,113 fans, the Marlins' smallest home crowd this season.
Jeff Suppan (1-2) allowed three runs in five-plus innings and remained winless in six starts since April 2.
Yost was ejected by plate umpire Derryl Cousins for arguing after Mike Cameron was called out on strikes to start the fourth.
"He gave me an opportunity to shut up, and I just didn't take it," Yost said.
After being thrown out, Yost came onto the field for a lengthy debate with Cousins, and when play resumed, Braun doubled on the first pitch for Milwaukee's first hit. Olsen said the delay didn't bother him.
"They had some very good at-bats," Suppan said. "They took me deep in the count. They did a good job."
- Anibal Sanchez pitched the Marlins' last complete game, a 2-1 loss to Atlanta.
- Yost's ejection was his first of the season.
- Cameron went 0-for-4 and has a lifetime average of .136 (3-for-22) against Olsen.
- Top OF prospect Cameron Maybin was batting .262 with 39 strikeouts in 103 at-bats for Double-A Carolina through Monday, and Fredi Gonzalez said there's no timetable for calling him up. "What's the big hurry?" Gonzalez said. "Let's make sure he's ready."