The 34-year-old will bow out at the end of the current Test against New Zealand on Tuesday, Cricket Australia said.
"I feel now is the best time to say goodbye," he said. "I have been lucky to have a wonderful career and enjoyed every moment playing for my country."
He is Australia's fourth-highest Test wicket-taker, with 311 in 73 matches, and also took 239 one-day wickets.
Johnson was given a guard of honour by the New Zealand fielders and an ovation from the crowd as he emerged for his last Test innings shortly before lunch on the final day in Perth.
The Waca was his home ground for Western Australia and he also played for his native Queensland.
"It's been an incredible ride," Johnson said. "But the ride has to come to an end at some point and to do so here at the Waca is very special.
"I've given the decision a lot of thought. Beyond this match, I'm just not sure that I can continue competing consistently at the level required to wear the Baggy Green."
Johnson had a good record against England, with 87 wickets in 19 Tests at an average of 25.81.
He was mocked by England fans during their series victory down under in 2010-11 for his wayward bowling. But he was one of the tourists' chief tormentors in Australia's 5-0 Ashes whitewash in 2013-14, during which he bowled with pace and hostility to take 37 wickets at 13.97.
Johnson was also a useful lower order batsman, scoring 11 half-centuries and one century during a career run haul of 2,034.
-BBC