The defeat leaves Northampton boss Aidy Boothroyd still looking for his first win.
Craddock’s breakthrough came shortly after the restart while Smalley secured a 2-0 win from close range late on, either side of missed penalties from Craddock and Cobblers striker Adebayo Akinfenwa.
Boothroyd was taking charge of his second match since grabbing the reins at Sixfields and he must have been pleased with the way his side played in the first half as they carved out the better chances. Saido Berahino saw a header cleared off the line by Simon Heslop and then a shot beaten out by goalkeeper Ryan Clarke moments later.
But the U’s took the lead minutes after half-time when Craddock, making only his second start of the season following injury, was picked out by Alfie Potter and drove a fierce angled shot past ‘keeper Sam Walker.
Oxford had a great opportunity to double their lead after 86 minutes when Craddock was brought down by John Johnson but the United forward blazed his penalty over the bar. However, two minutes later substitute Smalley turned in James Constable’s low left-wing cross to seal the points.
Northampton also missed a late penalty after Damian Batt handled Lewis Young’s shot in stoppage time, Akinfenwa seeing his spot-kick brilliantly saved by Clarke.