Tigers keeper Boaz Myhill was made to pay when he dropped Andy Reid's free-kick for Varney to stab home.
And tempers flared with an 18-man brawl when City's Ian Ashbee kicked out at Lloyd Sam and the pair both saw red.
Charlton came close to doubling their lead when Danny Mills hit the crossbar before Iwelumo side-footed home and Steve McPhee scored a late consolation.
Charlton manager Alan Pardew:
"We've now had two tough away trips and did look a bit tired. But technically, there's no doubt about us being good enough.
"The sending offs changed the game slightly and that incident perhaps affected them more than us.
"They tried to knock us out of our stride and did that to some degree."
Hull: Myhill, Ricketts, Turner, Brown, Dawson, Garcia (McPhee 56), Marney (Livermore 73), Ashbee, Pedersen, Windass (Elliott 68), Hughes.
Subs Not Used: Duke, Delaney.
Sent Off: Ashbee (44).
Booked: Marney, Windass.
Goals: McPhee 90.
Charlton: Weaver, Mills, Fortune, Bougherra, Powell, Reid, Zheng (Sodje 90), Semedo (McLeod 90), Sam, Varney (Jerome Thomas 90), Iwelumo.
Subs Not Used: Randolph, Todorov.
Sent Off: Sam (44).
Goals: Varney 41, Iwelumo 89.
Ref: Anthony Taylor (Greater Manchester).