Samuel Dalembert had 17 points and 14 rebounds for the Bucks, who ended a four-game losing streak. Milwaukee heads into the All-Star break with a four-game lead over the 76ers for the eighth and final playoff spot in the Eastern Conference.
Evan Turner had 20 points for Philadelphia, while Spencer Hawes added 19 points and nine rebounds. Jrue Holiday had 16 points and 12 assists for the Sixers.
Milwaukee didn't take its first lead until about 9:20 remained when Ellis converted a baseline floater to put the Bucks up 78-77.
After Philadelphia had taken an 81-80 lead, Ellis countered with a layup to put the Bucks back in front. Luc Mbah a Moute then made a driving layup, was fouled and converted the free throw to give the Bucks an 85-81 lead.
Dalembert hit a turnaround jumper as the shot clock expired to give the Bucks an 87-83 lead, then had a rebound and put-back to hand Milwaukee a seven-point cushion. But back-to-back baskets by Hawes and a layup by Turner cut the Bucks' lead to one.
A field goal by Ellis gave the Bucks a 93-90 advantage. After a Dalembert miss, Jennings stole the ball on the ensuing possession with less than one minute remaining. After Ellis missed a spinning layup attempt, Turner hit a lay-in with 20.2 seconds remaining to cut the lead to 93-92. Ellis then converted one of two free throws 11.2 seconds left for the final margin.
A scramble after a missed shot by Holiday led to a jump ball. Philadelphia gained possession but Mbah a Moute deflected a pass and the clock expired as the ball bounced to the other end of the court.
The win marked the tenth time this season that the Bucks have won after rallying from a deficit of 10 or more.
After trailing throughout the first half, the Bucks cut the lead to one early in the third but the 76ers responded with an 8-0 run to take a 66-57 lead with 5:20 remaining in the period. However, an immediate 10-1 run by the Bucks, capped by a driving layup by Mike Dunleavy, tied the score at 67. Philadelphia held on for a 75-72 lead at the end of the third quarter.
The Bucks made only 35.6 percent of their shots in the first half, compared with 55.9 percent for the 76ers.
With Larry Sanders, who leads the league with 3.2 blocked shots per game, still sidelined with a back injury, the Bucks failed to record a block in the first half for the second consecutive game. Milwaukee had 10 blocks in the second half.
Notes: Bucks F Larry Sanders missed his fourth consecutive game with a lower back contusion. Milwaukee coach Jim Boylan said Sanders sought a second opinion on the injury and that the team was awaiting the results of the latest series of tests. An initial bone scan conducted after Sanders fell hard on Feb. 5 at Denver did not show any fracture. "Hopefully in the next day or so we'll have a better idea of where we're at," Boylan said. ... Philadelphia F Thaddeus Young sat out as his continues to nurse a hamstring injury. ... 76ers coach Doug Collins said he and his team are ready for some much needed time off during the All-Star break. "We've been through a lot this year. It's been a tough year for us."