He is expected to miss 3-6 weeks.
Johnson, 39, spent time on the 15-day disabled list because of a sprained right knee, but was activated Sunday and pitched six innings in a 7-3 victory over the New York Mets in the nightcap of a doubleheader. He gave up two runs and nine hits while striking out 12, but never seemed comfortable.
After the pain persisted early in the week, the Diamondbacks decided to take care of the injury now rather than allow their star lefthander to pitch while injured.
"He had a very good outing in New York, but after the flight back and the following day, his knee seemed to swell up again," said team physician Dr. Michael Lee, who performed the procedure. "The MRI showed a lot of fluid in the knee, and small cartilage pieces in the knee."
The Diamondbacks also have been without righthander Curt Schilling, who went on the disabled list Monday after undergoing an appendectomy. He is expected to start Saturday.
After signing a two-year, $33 million contract extension prior to the season, Johnson has struggled. He is 1-2 with a 6.94 ERA in four starts.
Johnson is coming off another dominant season, one that resulted in his fourth straight Cy Young Award and fifth overall. With Arizona, he is 81-29, and had not been on the disabled list since joining the Diamondbacks in 1999.
To fill Johnson's roster spot, the Diamondbacks recalled pitcher Brandon Webb from Triple-A Tucson of the Pacific Coast League. Coincidentally, Webb started the opener of the doubleheader Sunday against the Mets and picked up the win.