The Middlesex left-hander, dropped twice, scored 107 off 142 balls as England reached 292 for seven off their 50 overs after winning the toss on Friday.
It surpassed the embattled tourists' 260 for eight against New Zealand in Perth last week and offered them the chance to finally win a match against Australia on their ill-fated tour.
Irishman Joyce, dropped by Shaun Tait on six and later by Andrew Symonds off his own bowling for 59, was the shining light for England, hitting 10 boundaries before was caught by Nathan Bracken off Tait.
The tourists have only beaten New Zealand once in their six matches in the tri-series and they need to win their last two with New Zealand losing twice to be sure of making the finals.
Australia (27 points) are unbeaten in the tri-series against England (4 pts) and New Zealand (9pts), with the second-placed Kiwis likely to qualify for the best-of-three finals on February 9, 11 and 13.
Ian Bell hit 51 off 60 balls before he top-edged a pull shot off Glenn McGrath and spooned a catch to wicketkeeper Adam Gilchrist, leading the Australians in the absence of injured skipper Ricky Ponting.
Joyce's opening partner Mal Loye was struck a fearsome blow on the grille of his helmet when he attempted to slog-sweep McGrath, suffering a gashed chin which needed three stitches. He was later cleared of a fractured jaw.
Loye, who resumed batting after lengthy treatment from the trainer, was out next ball as he top-edged a hook shot off McGrath to be caught by Bracken for 29 off 33 balls.
Skipper Andrew Flintoff only lasted 10 balls before he was leg before wicket to leg-spinner Cameron White for three and Andrew Strauss, batting at number five, cracked 26 off 24 balls with three fours before he was caught at backward square leg by Stuart Clark off Bracken.
Wicketkeeper Paul Nixon lasted two balls for four and Jamie Dalrymple was run out after a mix-up with Ravi Bopara for 30.
Bracken finished with 2-53 off nine overs and McGrath 2-51 off 10 overs.