Greg Sacks, driving an unsponsored research-and-development Chevrolet, passed Bill Elliott with eight laps left today to capture his first NASCAR victory in the Firecracker 400.

Sacks, who had not won in three years on the Winston Cup circuit, pulled off one of the upsets of the year in foiling Elliott's bid to add the Firecracker 400 to the Daytona 500 he won in February at Daytona Interntional Speedway.

Elliott has won seven races this season and is the Grand National points leader. He led most of the way today and was ahead of Sacks by a few feet when he was forced to pit for a splash of gas with nine laps remaining in the 160-lap event.

"We had a vibration in the car at the end, although I don't know what it was," Elliott said. I couldn't drive the car the way it needed to be driven to win."

Sacks, who started ninth, had made up an eight-second deficit to be in a position to move into the lead when Elliott pitted that last time.

But Sacks didn't know he was leading. His radio was out and, when he saw Terry Labonte in front of him in the final lap, he thought Labonte was in the lead.

" "I raced the last lap for the win with Terry Labonte," Sacks said. "He may not have known it, but I went into turn three to win the race."

He passed Labonte on the outside of turn four, heading to the finish line.

Sacks led three times for 33 laps and finished 23.98 seconds ahead of Elliott. Elliott, the pole-sitter, led seven times for 103 of the 160 laps.

Darrell Waltrip finished third, followed by Ron Bouchard, Kyle Petty, Buddy Baker and Ricky Rudd.

Sacks was driving a Chevrolet Monte Carlo SS fielded by Bill Gardner -- also the owner of Bobby Allison's Buick -- and using a pickup crew headed by former Allison crew chief Gary Nelson. His crew members had not worked together and some had never worked in a pit.

"Believe it or not, we felt we had a strong car from the first day we were here," said Sacks. "Actually, I knew if we could stay out of trouble and be there at the end, we had a chance to win it."

Sacks, Nelson and Gardner all insisted the winning car was part of a research and development program designed to help Allison rediscover the touch that brought him the Winston Cup title in 1983. Allison, winless for more than a year, finished 18th today.

"Obviously, we weren't going to beat Bill Elliott with conventional methods," Nelson said. "We came here to run well and try our ideas. Some of them were unconventional ideas, but we worked on the chassis night and day."

There were six yellow flags during the first 79 laps, but the rest of the race was run without the caution. In all, 26 laps were run under the yellow flag and Sacks averaged 158.730 mph.

The scariest moment came in the 66th lap. Tim Richmond blew a tire, hit the wall and caused Richard Petty also to hit the barrier.

Neither was seriously hurt. Richmond criticized track officials for having the fences locked on the infield, which he said delayed ambulances.

Also exiting early was Cale Yarborough, who lasted only 24 laps before leaving with a blown transmission.

Sacks took his first green flag lead on lap 100, charging past Elliott in the fourth turn.

He stayed ahead until he made his final scheduled pit stop on lap 121, giving the lead back to Elliott, who had pitted seven laps earlier during a series of green-flag stops.

Team officials said Elliott made pit stops early throughout the race because he was having problems with fuel pickup.

"This just goes to show how competitive it is right now," Elliott said. "If you make a little mistake or have a little something goes wrong with your car, that's all there is between winning and losing."

For Sacks, there will be another difference between winning and losing. "Before this win," he said, "I had plans of being at work (Friday) morning at 4 a.m." at his father's produce store on Long Island, N.Y.

Instead, he is scheduled to appear on ABC's "Good Morning America."