Pole sitter de Angelis stormed into an early lead, with Lorenzo and Dovizioso in close pursuit - until reigning world champion and 2007 points leader Lorenzo was thrown from his Fortuna Aprilia after 10 of the 27 laps.
That left de Angelis and Dovizioso over 30secs clear of third, with the Scot Honda rider launching a sustained victory charge in the closing stages. With just two laps to go the pressure eventually got too much for de Angelis, who pushed a little too hard down the Craner Curves and lost the front of his Aprilia.
That handed Dovizioso - who is now just 11 points behind Lorenzo - his second win of the season, while de Angelis was at least able to remount for second.
With eight laps to go Julian Simon, who had been pushing Hiroshi Aoyama for the final podium place, fell from fourth - leaving the KTM rider to complete the podium despite a late attack by countryman Yuki Takahashi.
Such had been the pace of the top two that Aoyama crossed the chequered flag over one minute behind Dovizioso, with sixth placed Mika Kallio two minutes behind.
Race results - Donington Park:
1. Dovizioso (Honda)
2. de Angelis (Aprilia) +22.102secs
3. H. Aoyama (KTM) +1min 3.137secs
4. Takahashi (Honda) +1min 3.377secs
5. S. Aoyama (Honda) +1min 25.269secs
6. Kallio (KTM) +2min 7.333secs
7. Simon (Honda) +1lap
8. Wilairot (Honda) +1lap
9. Linfoot (Aprilia) +1lap
10. Abraham (Aprilia) +1lap
Laverty (Honda) DNF