It was Orlando's 10th straight home win over Golden State.
McGrady shot 13-of-25 from the floor, was 7-of-9 from the line and made three three-pointers, while Grant Hill added 16 points for the Magic.
Antawn Jamison got 25 points for the Warriors.
In Indianapolis, the Indiana Pacers rode a 31-13 second quarter to a lopsided 94-72 win over the Denver Nuggets.
It was the Pacers' 14th win over the Nuggets in their past 15 visits to Indianapolis.
Five Pacers were in double figures, with Ron Mercer best of the bunch with 19 points, while Austin Croshere added 17, 11 of which came in the second period.
Chris Whitney top-scored for the Nuggets with 14 points while Rodney White grabbed 12 points off the bench.
Indiana improved to 17-5, the best mark in the conference.
In Toronto, Gary Payton notched 21 points to lead the Seattle Supersonics to a 91-79 win over the ailing Raptors.
Payton also grabbed six rebounds and dished out six assists.
Toronto's Lindsey Hunter matched him with 21 points, while Morris Peterson chipped in with 18 points.
The Raptors, now a disappointing 7-15, have been dogged with injury problems all season.
In Philadelphia, Stephon Marbury scored 28 points and Shawn Marion had 25 as the Phoenix Suns upset the 76ers 99-91.
Marbury also had 10 assists, while Marion pulled down 15 rebounds.
Allen Iverson had 22 points for the Sixers, while team mate Keith Van Horn added nine points and 10 boards.
It was Philadelphia's second straight home loss after 10 consecutive wins.
CLEVELAND LOSE AGAIN
In Boston, the Celtics handed the lowly Cleveland Cavaliers their 12th straight road loss, winning 115-100.
Antoine Walker grabbed a triple-double with 33 points, 11 rebounds and 10 assists for the Celtics, while Tony Battie added a career-high 24 points and Paul Pierce had 21 points.
Ricky Davis had a game high 42 points in 44
The Cavaliers are now 1-13 away from home for the season.
In East Rutherford, New Jersey, the Nets held Michael Jordan to just 5-for-20 shooting while Jason Kidd had another triple-double in a 79-65 victory over the Washington Wizards.
Kidd finished with 11 points, 10 assists and 10 rebounds for his 48th career triple-double as the Nets' grabbed their fifth straight win.
Richard Jefferson got 21 of New Jersey's 79 points, with Kenyon Martin adding 19.
Larry Hughes had 19 points and 10 rebounds to top the Wizards, while Jordan, who is pushing 40, finished with 12 points in 40 minutes of action.
In Miami, Latrell Sprewell notched 30 points as the New York Knicks outlasted the host Heat 97-92.
Charlie Ward, the former Florida State quarterback and 1993 Heisman Trophy winner, was next best for New York with 14 points, including a crucial three-pointer with 24 seconds left.
Eddie Jones had 24 points in a losing cause.
In Memphis, the Grizzlies accomplished a franchise first by winning their fourth straight game, a 114-109 overtime thriller over the Houston Rockets.
It is their longest run of success since moving to Tennessee.
Three Grizzlies topped 20 points, Pau Gasol getting 29, Jason Williams 25 and Wesley Person 21, including a crucial three-pointer in the final minute of extra time.
Steve Francis and Cuttino Mobley scored 29 and 25 points respectively for Houston while Chinese rookie Yao Ming added 18 points and pulled down 15 rebounds.
In Milwaukee, the Bucks made the most of a 32-15 third quarter, to go on to a lopsided 101-79 victory over the Portland Trail Blazers.
Tim Thomas paced the hosts with 25 points, with Sam Cassell adding 19 and 10 assists.
Zachary Randolph had 17 for the losing Blazers, who dipped below .500 for the season.
In San Antonio, the Spurs beat the Los Angeles Clippers for the 18th time in their last 19 meetings, with a 97-84 victory.
Tim Duncan had 25 points and 18 rebounds for San Antonio, also dishing out six assists.