When Hannibal Lecter is about to kill the guy in the houseboat when trying to rescue Lady Murasaki Shikibu, he has the guy on the ground with a knife next to his throat, with no blood on it, when the camera shoots back at Hannibal Lecter, the knife is shown with blood.
When the soldier pulls out the dog tag from Dortlich's mouth and examines it, he has no glove on his right hand, but when he turns around to examine the fire pit he removes a glove from his right hand.
Near the end of the movie, when the Inspector confronts Hannibal at school and escorts him to the police station, he arrives in a different shirt and hairstyle. He goes from the police station to his aunt's apartment and is seen in yet another outfit and hairstyle; he then returns to school and is back in his original sweater and hair.
When Hannibal makes his first kill, you see in a far off shot that he walks several steps from his victim. In the next shot, he spins and chops off the guys head and is suddenly relatively close to the victim.
If Hannibal had really been schooled in Japanese sword art, regardless of hand dominance, he'd have been holding the sword handle (tsuka) with his right hand on top and his left hand below. The Japanese always draw with their right hand.
The antitank Stuka carried two 37mm cannon, not 20mm ones. Each cannon carried 6, 8, or 12 rounds, depending on the clip loaded into the weapon. These weapons were also rather slow firing (~160 rounds/minute). Thus, the cannon would not have fired as shown in the film - not at the rate shown, nor for the length of time.
When Stuka plane crashes into the T-34 tank, there is a huge explosion, but the Stuka plane frame seems intact after the crash, just burning. Such impact would take place at some 300km/h, thus there would be just small scraps left from the plane.
The goof item below may give away important plot points.
Errors in geography
Coming back to Lithuania, on his way from Paris (France) to Kaunas (Lithuania), Hannibal has his documents checked in Medininkai, so it must be a border town in western Lithuania. In reality Medininkai is in eastern part of Lithuania on the Lithuanian - Belarusian border. And as far as both countries were former Soviet Republics, Medininkai was not a frontier post at all.