The Suns blew a 25-point second-quarter lead and trailed by five with 2:21 left, but were saved by Bledsoe's seven points in the last 1:38. Bledsoe pumped in a career high 33 points, with reserve guard Isaiah Thomas adding 27, a season high.
"I wanted to finish the game strong. My teammates kept on giving me the ball. They gave me confidence and the coach kept on giving me the ball," Bledsoe said.
"I'm going to go home and sleep like a baby, I'll tell you that much," he added.
The Blazers (31-12) went up 110-105 with 2:22 to play on a 3-pointer from leading scorer Nicolas Batum, who finished with 27 points. But the Suns went on a 13-3 run to close the game and win their seventh straight at home.
"Down 25, up five with two minutes to go, you can't lose that game," Batum said.
Portland got 22 points each for Damian Lillard and Wesley Matthews and 10 rebounds from Batum.
The Suns (26-18) have their longest home win streak of the season and longest since eight straight during the 2009-2010 season.
The Blazers had a chance to go ahead again with 20 second left, but Lillard missed a baseline jumper and fouled the Suns' P.J. Tucker.
A missed free throw by Batum also cost the Blazers a chance to tie the game at 114. Portland's last chance to tie was lost when Lillard stepped out of bounds trying to catch a high inbounds pass with 9.8 seconds left.
"I don't think we should be satisfied with a moral victory," Lillard said. "We didn't deserve to win the game because of how it went. You want to win, you expect to win but not enough things went right."
The Blazers, missing star forward LaMarcus Aldridge because of a left hand injury and two big men in Robin Lopez and Joel Freeland, overcame their worst defensive first quarter of the season and outscored Phoenix 80-60 from the 5:10 mark of the second quarter. But they came up short.
The Suns outscored the Blazers 27-2 over nine minutes between the first and second quarters to take control. Portland went scoreless over the last three minutes of the first and almost three minutes of the second before Will Barton's layup.
Gerald Green lobbed to Miles Plumlee for a dunk, and Phoenix led 53-31 at the 6:09 mark of the second. The Blazers trailed by as many as 25 but cut the lead to 14, 66-52, at halftime.
The Blazers rallied in the fourth quarter, trimming the Suns' lead to 93-86 with 8:57 left after Dorell Wright's conventional three-point play.
Phoenix's lead was four points until Thomas scored on a soaring layup and drew a blocking foul on Wright, making the score 99-92 after a free throw. Thomas kept the Blazers at bay with another basket with 5:59 to go, giving the Suns a six-point lead.
But the Blazers stormed ahead 105-102 with 4:05 left on the 3-pointer from Batum.
The Suns tied a season high for points in a first with 40 and the total was the most the Blazers have surrendered in any opening period this season. Despite losing four of five, the Blazers maintain a comfortable lead in the NBA's Northwest Division.
Blazers: Batum eclipsed his season high by 10 points, and his six 3-pointers were also a season best. ... Wright, who started in place of Aldridge, scored a season high 15 points.
Suns: Phoenix has won seven straight at home over the Blazers. The Suns are 17-2 against Portland in 19 home games since January of 2005. The Suns are now 4-0 at the halfway point of their longest homestand in club history, eight games. They are home through Jan. 30. ...They have shot 50 percent or better in four straight games, their longest such streak since February 2010.
Blazers: Host Boston Thursday night.
Suns: Host Houston Friday night.