ST LOUIS (Ticker) -- Marque Perry and Saint Louis ended a Louisville party that lasted more than two months.
Saint Louis ended the nation's longest current winning streak at 17 games as Perry scored six points in the final 14 seconds to lift the Billikens over second-ranked Louisville, 59-58.
"They played a terrific basketball game and stopped a streak that we had a lot of fun with," Louisville coach Rick Pitino said. "Now it's time to start a new streak."
Perry scored 25 points for Saint Louis (9-12, 3-7 Conference USA American), which closed the game with a 9-1 run and posted arguably its biggest win since upsetting Cincinnati en route to the conference tournament title in 2000.
Louisville appeared to be in control when Reece Gaines sank a 3-pointer with 1:57 left to make it a 57-50 game. But a basket by Perry and a dunk by Chris Sloan cut the lead to 57-54 with 48 seconds left.
Gaines was able to make just 1-of-2 free throws and Perry scored on a drive and completed a three-point play with 13.2 seconds left.
The Cardinals had trouble inbounding the ball and Perry tipped a pass intended for Gaines, giving the Billikens possession. They set up a play for Perry, who drove to his left and moved inside for the game-winning layup.
"We let them get in the lane. We made some errors and you have to call a timeout," Pitino said. "Then we have to make some free throws and the game is over, and we didn't. We haven't been in many tight games of late and we have to learn from that."
Louisville had one more chance, but Gaines' shot from near midcourt hit off the backboard.
Gaines had 28 points for the Cardinals (18-2, 8-1 C-USA American), who fell one win short of a school-record winning streak set in their national championship season of 1979-80. Louisville lost for the first time since an 86-84 defeat to Purdue in Indianapolis on November 30.
The Billikens had lost two in a row and seven of nine before Wednesday's stunning victory. But the triumph should not have come as a complete surprise.
The Cardinals had lost four in a row to Saint Louis before posting a 73-54 triumph at Freedom Hall on January 11. That game was tied with 14 minutes to play before Louisville pulled away.
"I believe that they thought they were going to keep their winning streak going," Perry said. "I'm just glad that we could come in and get a win."
Saint Louis is in its first season under coach Brad Soderberg, who was an assistant on Wisconsin's Final Four team in 2000 before being promoted to head coach, where he was 16-10 in his one season on the job.
"I'm happy for our players. We needed a victory to believe," Soderberg said. "I can't minimize how big this is. To do it against the No. 2 team is so important for our players. I would have been happy to beat Hazelwood Central (High School) because we needed a win so bad."
Sloan and Josh Fisher each added 11 points and Kenny Brown had 11 rebounds for Saint Louis.
The Billikens played an aggressive defense that held Louisville to its lowest point total of the season. The Cardinals' previous low was 65 points against Air Force on November 23.
"We knew going into the game that hustle was going to be the difference for us to pull out the win tonight," Sloan said.
Gaines was the only Cardinal to score in double figures and Louisville shot just 46 percent overall. Marvin Stone was held scoreless in 30 minutes and only took two shots.
The Cardinals had won 14 straight since Stone, who averages 13.0 points and 8.2 rebounds, became eligible on December 18.
Louisville jumped out to a quick 9-0 lead, but Saint Louis bounced back to take a 12-11 lead on a basket by Brown with 12;40 left. Sloan sank a 3-pointer at the buzzer to give Saint Louis a 30-27 halftime lead.
Neither team led by more than six points until Ellis Myles sank a pair of free throws and Gaines hit a 3-pointer to make it 57-50.
With Louisville's loss, the longest winning streak in the nation is Manhattan's 15-game run.