His knock lasted nine minutes short of four hours and featured 19 fours.
It laid the foundations for Glamorgan's 348 all out after Northants had won the toss and invited their hosts to bat.
Northants' left-arm seamer Mathew Inness grabbed seven for 90 from 26 overs, but skipper Robert Croft made sure Glamorgan did not waste their advantage with an enterprising unbeaten 59 off 86 balls featuring 12 fours.
In reply, Northants had to negotiate just one over before bad light halted play and made three without loss.
Northants skipper Tony Penberthy's gamble seemed to have paid off when Inness made a double breakthrough inside the first hour's play.
Wicketkeeper Mark Wallace (12), promoted to open the batting, was the first to go with the total on 26 in the 10th over when he appeared to be beaten for pace by a good-length delivery and was bowled.
Matthew Maynard typically continued to go for his shots, but David Hemp (12) became the second victim for Inness with the total on 46 when he failed to get far enough forward and edged a catch to wicketkeeper Tobin Bailey.
With Maynard in good form, Glamorgan continued to score at a healthy rate but the former England batsman was dismissed soon after completing his 50, with the total on 87, when he was trapped leg before playing only half forward to Penberthy.
Maynard, who was given a life on 43 when dropped behind by Bailey off medium-pacer Matt Cassar, batted just short of two hours, facing 81 balls and hitting eight fours.
Glamorgan were wobbling slightly, but Powell and Adrian Dale steadied the ship with a fourth-wicket stand of 62 before the latter failed to keep down an attempted pull off seamer Jeff Cook and was well caught by Carl Greenidge at long-on.
Powell and new partner Jonathan Hughes (26) continued the good work and a fifth-wicket stand of 77 put Glamorgan on top before a bowling change saw Northants strike back just before tea with Robert White trapping Hughes leg before with the fifth ball of his first over.
Powell went on to complete his century after tea but fell with the total on 254 when he nicked a good-length Inness delivery to wicketkeeper Bailey.
Darren Thomas (22) joined Croft in a useful seventh-wicket stand of exactly 50 before he was caught at cover by Jason Brown off Inness, who then beat David Harrison for pace to bowl the new batsman for a duck.
Despite Croft's efforts, Glamorgan just missed out on a fourth batting point when, with the total on 348, the impressive Inness bowled Andrew Davies for 18 and three balls later did well to hold on to a juggling return catch from Dean Cosker.
View a Printer Friendly version of this Story.