CJ McCollum had 21 points and Jusuf Nurkic had 14 points and 13 rebounds for the Blazers, who overcame a 15-point deficit in the final 7:26 for their fifth victory in their last six contests.
Devin Booker had 30 points and nine rebounds and TJ Warren had 19 points for the Suns, who have lost nine in a row, 14 of 15 and 17 of 19. They have been outscored by 183 points in the losing streak.
After a Suns committed a turnover while attempting an inbounds pass in the final minute, Lillard controlled the ball near the mid-court line before penetrating down the left side of the lance for the game-winning layup.
Lillard had his seventh double-double of the season as the Blazers moved a season-high eight games over .500.
Elfrid Payton had 13 points and 11 assists and Alex Len had 11 points and 13 rebounds for the Suns
The Suns led by 15 after Booker hit two free throws with 7:26 remaining before the Blazers rallied, tying the game at 97 on Lillard's tip-in and ensuing free throw with 2:38 remaining.
Booker's driving layup with 33.6 seconds remaining made it 104-102 before Lillard tied it again, setting up the final sequence.
Lillard made 11-of-15 free throws but missed his first attempt in the game, breaking a streak of 54 straight makes at 4:55 of the first period. Damon Stoudamire has the franchise record of 57 straight.
Lillard's 3-pointer for a 60-50 lead one minute into the third period gave him a 3 in 42 straight games, tying his own franchise record set last season.
Portland, which is 17-15 on the road, shot 39.4 percent from the field and made just 6 of 30 3-pointers. Lillard was 3-for-11 from deep.
The Suns are 9-23 at home.
The Blazers play eight of their next nine games at home, including games against contenders Minnesota, Oklahoma City, Golden State and Cleveland.
--Field Level Media