The incident came hours after a Japanese domestic airliner separately experienced turbulence over western Japan, injuring two people on board.
Air Canada Flight 38 landed safely at Narita International Airport Sunday night.
Four of the 11 cabin attendants, all Canadians, were injured when the Boeing 767 hit turbulence about an hour after leaving Shanghai, said airport police official Masatoshi Uchiumi.
The four were mostly scratched and bruised, and none of the flight's 186 passengers were hurt, Uchiumi said. Kyodo News agency had earlier reported that five passengers and crew members were hurt.
Uchiumi said he did not have details of how the four crew members were injured. Officials were inspecting the aircraft.
Earlier Sunday, a Tokyo-bound Japan Airlines domestic flight ran into turbulence, injuring a cabin attendant and a passenger before landing safely at Haneda Airport as scheduled.
JAL Flight 1348, carrying 373 passengers and 11 crew from Kobe, 270 miles west of Tokyo, unexpectedly hit rough air just as it reached cruising altitude near Itami City about half an hour into the flight, said airline spokesman Kenji Okuyama.
One passenger smashed against the overhead storage compartment and cut his forehead when he tried to stand up just as the Boeing 777 hit turbulence and lost altitude, Okuyama said.
The flight had been smooth and the seat belt signs had been turned off before the sudden turbulence, he said.