In a dizzying flurry of deals, the Boston Red Sox sent star shortstop Nomar Garciaparra to the Chicago Cubs in a blockbuster, four-team swap right before yesterday's trade deadline.

Steve Finley, Esteban Loaiza and Orlando Cabrera also switched teams in the eight trades that came less than an hour before the 4 p.m. deadline for making deals without waivers.

Randy Johnson, however, remained with the Arizona Diamondbacks. The New York Yankees wanted him, and instead wound up trading Jose Contreras to the Chicago White Sox for Loaiza.

With more than 20 teams still in the playoff hunt, a lot of clubs were eager for action. Many got busy, including those old October heartbreakers, the Red Sox and Cubs.

Garciaparra was wearing his Boston jersey when Manager Terry Francona called a team meeting before the game at Minnesota. Then, the news came that the five-time all-star shortstop and two-time AL batting champion was headed to the Cubs.

"My initial reaction was, 'Wow,' " Garciaparra said. "If it was in my control, I'd still be wearing a Red Sox uniform, because it's the place I know, I love. All of those fans, I'll always remember. But I'm also going to another great place. I'm going to a phenomenal city with great tradition as well, phenomenal fans, great organization."

He added, "Hopefully, we'll see them in the World Series."

Garciaparra, 31, is batting .321 with five home runs and 21 RBI in 38 games this season. He missed the first 57 games of the season with an injured Achilles' tendon.

The Red Sox wound up with Cabrera, Montreal's Gold Glove shortstop, and Minnesota first baseman Doug Mientkiewicz, while the Cubs got Garciaparra and minor league outfielder Matt Murton. Montreal acquired Cubs shortstop Alex Gonzalez, pitcher Francis Beltran and infielder Brendan Harris, and the Twins got minor league pitcher Justin Jones.

The NL West-leading Dodgers were active, making three trades a day after completing a six-player deal with Florida.

After Finley agreed to accept a deal to Los Angeles, the Diamondbacks traded the four-time Gold Glove center fielder with catcher Brent Mayne. The 39-year-old Finley hit .274 with 23 home runs and 48 RBI for Arizona.

The Dodgers sent minor league catcher Koyie Hill, outfielder Reggie Abercrombie and left-hander Bill Murphy to Arizona. The Dodgers acquired Murphy on Friday in a trade with the Marlins.

Los Angeles then traded center fielder Dave Roberts to Boston for minor league outfielder Henri Stanley. Earlier, the Dodgers sent left-hander reliever Tom Martin to Atlanta for minor league lefty Matt Merricks.

After getting shut out on Johnson, the AL East-leading Yankees swapped the inconsistent Contreras and $3 million for Loaiza, a 21-game winner last season.

Loaiza is 9-5 with a 4.86 ERA in 21 starts this year and made his second straight all-star appearance. He is already signed for next season.

The Yankees also agreed to terms with free agent John Olerud for first base help with Jason Giambi out indefinitely. Olerud, 35, was hitting .245 with five homers and 22 RBI when he was released last week by Seattle.

Also yesterday, Florida acquired starting pitcher Ismael Valdez and reliever Rudy Seanez. The Marlins sent minor league pitcher Travis Chick to San Diego for Valdez and dealt outfielder Abraham Nunez to Kansas City for Seanez.

And AL West-leading Texas got pitcher Scott Erickson and cash from the New York Mets for a player to be named.

Starting late yesterday afternoon, teams could still make trades, but players must pass through waivers. Teams have until Aug. 31 to acquire players in order for them to be eligible for the postseason.