Bahram Mark Sobhani/The Associated PressPortland Trail Blazers' LaMarcus Aldridge, left, and Jerryd Bayless, right, fight for control of the ball with San Antonio Spurs' Tim Duncan during the second half of their game in San Antonio on Wednesday. The Trail Blazers beat the Spurs 98-94.SAN ANTONIO -- LaMarcus Aldridge stepped out of a boisterous Trail Blazers locker room and strutted down a dimly lit corridor in the bowels of AT&T Center toward the team bus, echoing a fitting phrase over and over.

"This is a good day for the Trail Blazers," he said, grinning. "This is a good day."

In yet another head-scratching outcome, the Blazers overcame yet another injury and played yet another inspired game to defeat the San Antonio Spurs 98-94 Wednesday night before 18,581.

Jerryd Bayless, in his first career start, had a career game, and the Blazers enjoyed key contributions from virtually everyone on their decimated roster.

"I don't think anyone (outside the organization) believed we could win," Bayless said. "But we're just trying to set out and prove people wrong."

Shortly before tipoff, the Blazers learned All-Star Brandon Roy would not play because of a sprained left shoulder he suffered in the closing minutes of Tuesday night's win at Dallas. Roy, who underwent multiple medical tests in San Antonio, will have an magnetic resonance imaging performed today after the team returns to Portland.

It was another disheartening, if not comical, setback for a Blazers team that has been depleted by injuries. The Blazers (19-12) had just nine healthy bodies available against the Spurs (15-11),and one of them, Anthony Tolliver, is a recent NBA Development League call-up whom the Blazers signed only because the NBA granted them a hardship exception.

Two others, Jeff Pendergraph and Dante Cunningham, are rookies who were second-round draft picks in June. And Pendergraph, injured for most of the season, played in just his second NBA game. At one point in the first half, the Blazers had three players from their NBA Summer League team -- Bayless, Cunningham and Pendergraph -- on the court at the same time.

Which makes the victory all the more stunning.

"This team tonight showed again they do have character, resiliency ... and, just, there's no words (to describe this)," McMillan said. "I'm so happy for this group."

The Blazers played with grit and toughness from the opening jump and controlled the tempo throughout. They led by as many as 12 points in the second half and had a nine-point edge with less than two minutes remaining. But, as fans have come to expect in this roller-coaster of a season, the victory was undecided until the closing seconds.

The Spurs, who had defeated the Blazers 11 of the previous 12 times in San Antonio, scored seven consecutive points to trim the Blazers' lead to 96-94 with less than 30 seconds left. All-Stars Tim Duncan (four points) and Tony Parker (three) led the Spurs during the run.

The Blazers tried to get the ball to Bayless in the closing seconds, but he was either denied the ball or blanketed with double-teams when he had the ball, so the Blazers turned to Andre Miller, who had a dreadful shooting game, making just 2 of 13 field goals. Miller bricked a jumper, but Steve Blake punched the rebound out to the perimeter and Miller corralled it.

The Spurs fouled him with 0.8 seconds left and he drained two free throws to seal the victory.

It, incredibly, allowed the Blazers to conclude their grueling four-game trip with a 3-1 record, as they ended with back-to-back wins at Dallas and San Antonio. McMillan called it the best trip he's been a part of as a coach.

"We're playing the game the right way," McMillan said. "I firmly believe you do that, you play the game hard, you play this game together, you'll give yourself a chance to win in this league. We know we have a tough road ... we don't know what tomorrow will bring. But we'll enjoy this ..."

At the heart of the Blazers' success was Bayless, who was sometimes breathtaking and mostly dominant while starting for Roy. He mixed his improving jumper with his typical aggressive drives to finish with a career-high 31 points and seven assists. McMillan, who said he was most pleased with Bayless' defense, called offensive sets that he normally calls for Roy. And Bayless executed them with poise, leaving even Roy impressed.

"They couldn't guard him," Roy said, simply.

The Spurs also had a hard time with LaMarcus Aldridge (22 points, eight rebounds, three assists) and Juwan Howard, who finished with 12 points and 12 rebounds to register back-to-back double-doubles for the first time since December 2006. Martell Webster (11 points) hit some important shots and, really, every one of the nine healthy Blazers contributed.

You could feel the excitement and happiness afterward in the postgame locker room. At one point, Aldridge emerged from the showers and bee-lined toward Roy.

"J. Bay said he's going to put on his twitter page I did it again," Aldridge said, after which the two franchise cornerstones shouted, "Eeehhhhhhhh," in unison.

Later, as Bayless was approached by a throng of reporters for an interview, he denied Aldridge's twitter claim. Then Bayless went on to refuse praise, instead opting to give credit to teammates.

In the middle of one of Bayless' answers, Aldridge, sitting about three lockers down from the second-year guard, screamed: "Oh, he's gonna play it humble."

It was hard to fault this team for being so bubbly. After enduring so many what-can-go-wrong-next moments, the last two games have helped this team develop something they've seemingly lacked for much of the season: Confidence.

"If we keep believing in ourselves, we can win games," Aldridge said. "I think everyone feels confident and I think everyone believes and I think it's starting to show in our play."