McGoldrick opened the scoring just before the break with a right foot finish from 15 yards and his striking sidekick extended the lead on the hour with a close range finish.
McGoldrick could have added to his tally after Murphy set him up but the damage was done for the Lions as Blues made it to the final whistle without too many alarms.
Town made three changes to the side that drew at Derby last time out, McGoldrick, Tyrone Mings and Cole Skuse all returning to the starting line-up. Teddy Bishop kept his place to make his home debut.
Carlos Edwards made his first return to Portman Road after leaving in the summer for the Lions and was given a warm reception from the Blue Army.
Millwall could and probably should have been ahead on eight minutes, Scott McDonald released Scott Malone inside the Town box, Martyn Woolford’s shot was saved by Dean Gerken and Jermaine Easter rattled the bar with the follow-up.
Town responded, McGoldrick forcing a corner, then Bishop almost created an opening with a weaving run.
Millwall continued to carry a threat though and Easter tested Gerken after Malone had found space on the left again.
Mings pinged a cross that was cleared by Mark Beevers as Murphy threatened, then Edwards caused a problem for the Town defence, his cross fed back into the danger area and Mathias Ranegie headed over.
Forde had an anxious moment when mis-kicked clearance went straight to Murphy but the Republic of Ireland international’s effort was blocked, Paul Anderson then seeing a volley held by Forde.
Christophe Berra headed over from a corner, Anderson sent a left footer wide after linking up with McGoldrick before the Millwall fans were on their feet thinking Woolford’s effort had gone in, it hadn’t.
Seconds later, the Blues fans’ arms were raised as Murphy got on the end of Anderson’s cross but his header was finger-tipped to safety by Forde.
Just before the break, those arms were raised again and this time it counted, McGoldrick’s effort taking a deflection off Beevers before finding the net to give Blues a half-time lead.
Ian Holloway made a change at the break, with Jack Powell replaced by Magaye Gueye and the substitute was immediately in the action, his driving run ended by Bishop’s excellent tackle.
McGoldrick was close to adding to his first-half strike, the frontman getting on the end of a cross but under pressure and he couldn’t wrap his foot enough around the ball to make Forde work.
Murphy was crowded out inside the Millwall box, Gerken smothering the danger from Malone’s cross following a Lions’ break.
Blues made it two on the hour, Berra was first to Jay Tabb’s corner and Murphy forced the ball in from close range.
Gerken did brilliantly to keep the advantage at two a minute later, throwing himself to his left to tip over McDonald’s free-kick.
Former Blue, Ed Upson replaced Woolford and ex Town-loanee Ricardo Fuller was also introduced, with Tommy Smith introduced for the injured Mings. Luke Hyam completed a flurry of changes, Bishop making way.
Gerken got down well to hold Alan Dunne’s long range shot, then McGoldrick blazed wide from a good position after Murphy had set him up as Town looked to seal the points.
Murphy headed wide from Anderson’s cross, then Anderson was denied as a third goal beckoned Blues.
It didn’t come but the three points did as Town made it two wins from three at Portman Road this season.