Both sides used the fixture to give game time to players who have not featured as regularly as others so far in their respective domestic campaigns.
Skipper David Weir made only his second appearance of the season for Rangers after spending the early part of the campaign sidelined through injury, while Matt McKay was handed his first start.
Danny Wilson was named in the starting line-up for Liverpool against his former club but another ex-Rangers player, Charlie Adam, started on the bench, while Steven Gerrard was not included in the squad.
Juan Manuel Ortiz tried his luck with a decent shot early on that Doni did well to smother, before the goalkeeper was called into action again to block from Steven Whittaker.
The breakthrough came from the resulting corner when Steven Davis delivered into the packed goalmouth and the ball broke for McCulloch who forced home with 20 minutes gone.
McKay should have doubled the advantage a few minutes later with a header from six yards but Doni produced a great save to deny the Australian.
Liverpool could have levelled through a deflected shot from Andy Carroll but Allan McGregor was able to block comfortably in the Rangers goal.
Davis ran onto a long ball from McCulloch in plenty of space and tried to lob the goalkeeper only for his effort to dip just over the crossbar.
Liverpool emerged for the second half unchanged, while Rangers made five changes at the break, including McGregor being replaced in goal by Neil Alexander.
The home side thought they had added to their lead 10 minutes after the restart when substitute Kyle Lafferty tested Doni at his right-hand post and the goalkeeper spilled the ball but referee Willie Collum ruled that the effort did not cross the line.
Doni injured himself while attempting to make the save and was replaced by Martin Hansen.
Both sides then made a number of changes with just over an hour gone and Adam’s introduction to the action was met with one of the biggest cheers of the night from the Ibrox crowd.
Rangers continued to carve out the best of the chances and Lafferty saw his long-range shot graze the crossbar, with the woodwork denying the Northern Irishman on this occasion.
Liverpool almost levelled late on when Carroll teed up the shot for Jordan Henderson and his well-struck shot was deflected just past the upright.
Carroll then went to ground under pressure from Alexander but there was no penalty award as Rangers held on for the win.