England was dismissed for 281 in its reply to Australia's 136 all out.Moeen and Broad shared a 77-run, eighth-wicket partnership at Edgbaston just as the Australians appeared to be getting back into the match after Mitchell Johnson claimed two early wickets in the same over.
Moeen was out for 59, including 11 fours, and Broad for 31.
Still only the second day, the two first innings between them produced 417 runs — compared to 878 in the second test at Lord's, won by Australia.
Joe Root hit a speedy 63 — the top score of the match so far — while spinner Nathan Lyon ended with 3-36.
Unlike the first day, the rain stayed away with occasional sun and some movement.
Johnson became the fifth Australian to take 300 test wickets and the coveted double of 300 test wickets and 2,000 runs, which he achieved on the first day with 3 runs. England's Stuart Broad is also chasing the same milestone.
The five-match series is tied at 1-1.