Al Horford's dunk with 56.6 seconds left made it 95-89 and all but sealed it for the Hawks. Horford finished with 11 points and 13 rebounds.
LaMarcus Aldridge, who was questionable going into the game with a knee injury, led the Blazers with 20 points and 14 rebounds.
Horford's dunk on a fast break put the Hawks up 86-80 with six minutes left in the fourth quarter. He momentarily stood underneath the basket, staring down the Rose Garden crowd in defiance after Portland led by as many as 12 points in the first half.
Portland's Travis Outlaw made a jumper and a 3-pointer to narrow it to 86-85, but Crawford came back with a jump from the top of the arc with 4:01 left.
After Outlaw closed in again with another jumper, Joe Johnson hit a 3-pointer to make it 91-89 for the Hawks.
Andre Miller made a pair of free throws for Portland before Johnson's jumper and Horford's dunk with just under a minute left kept Portland at bay the rest of the way.
The Hawks (3-2) were playing the second of a four-game road trip. They fell 118-110 to the Los Angeles Lakers on Sunday.
Aldridge played against the Hawks after he was knocked out of Portland's game Sunday at Oklahoma City with a bone contusion on his right knee. The Blazers (2-2) defeated the Thunder 83-74.
The Blazers and the Hawks split their series last season, with each team holding their own at home. Portland has won nine of the last 10 at the Rose Garden.
The Blazers began to pull away late in the first quarter, capped by Brandon Roy's two-handed jam to make it 25-15. Oden padded the lead to start the second with a dunk off a pass from Miller.
But the Hawks came back, with a 14-6 run capped by closing Mike Bibby's 3-pointer to close to within 43-41. The Hawks narrowed it to 48-47 at the break. Atlanta was led by Crawford, who had 15 points in the quarter.
Atlanta jumped up early in the second half. The brief lead was marked by a Horford shot that came to rest on the space between the rim and the backboard.
Portland came back to go up by as much as 64-56 after Steve Blake's 10-foot-jumper, but again Atlanta answered and led 72-69 at the end of three.
Roy's step-back jumper tied it for the Blazers at 80, but the Hawks scored the next six straight, capped by Horford's fast break dunk, with an assist from Crawford, that made it 86-80.