Les deux avions volaient à 36 000 pieds (environ 11 000 mètres), leurs trajectoires étant concourantes. L'espace aérien, bien qu'étant au-dessus du sol allemand, était contrôlé depuis Zurich par skyguide, la société privée en charge du contrôle du trafic aérien pour la Suisse.
Le contrôleur aérien travaillait sur deux postes de contrôle à la fois, et ne prit que tardivement conscience du danger qui menaçait les deux appareils. De plus l'équipe de maintenance technique avait désactivé le système d'alertes de collision, qui s'active lorsque deux appareils sont trop proches et ne respectent donc plus les règles de séparation, c'est-à-dire 1000 pieds, soit 300 mètres environ, verticalement et 5 milles nautiques (9,26 kilomètres) horizontalement.
Cependant, moins d'une minute avant le crash, il contacta le pilote russe et lui demanda de descendre de 1000 pieds afin d'éviter la collision avec l'avion allemand. Plusieurs secondes après le début de la descente, le pilote russe reçut du TCAS (système anti-collision embarqué) l'instruction inverse (monter), alors que le pilote allemand recevait de son TCAS l'instruction de descendre. Si les deux pilotes avaient suivi ces dernières instructions, la collision n'aurait jamais eu lieu. Hélas, le pilote allemand suivit l'instruction de son TCAS, contrairement au pilote russe qui continua d'obéir aux instructions du contrôle aérien, chacun conformément à la procédure en vigueur dans son pays.
N'ayant pas conscience des instructions données par le TCAS, le contrôleur aérien répéta à l'équipage russe sa consigne de descente. De plus, il donna une information de position erronée, et l'équipage du Tupolev perdit de précieuses secondes à essayer de localiser visuellement le Boeing dans l'obscurité. Les deux avions descendaient.
Et la catastrophe arriva, les deux avions entrèrent en collision. Le Tupolev 154 accrocha la queue du Boeing 757, explosa et se brisa en deux immédiatement. Le 757 lutta pendant 7 kilomètres avant de s'écraser à flanc de montagne, juste après l'explosion d'un moteur. Aucune des 71 personnes à bord des 2 appareils ne survécut.
Le procès de skyguide s'est tenu du 15 mai au 24 mai 2007 en Suisse, à Bülach, au nord de Zurich. 8 collaborateurs de skyguide, accusés d'homicides par négligence, ont comparu. Le ministère public a requis des peines de 15 mois de prison avec sursis pour 3 cadres de l’entreprise, et entre 6 et 12 mois pour les autres accusés. En septembre, le tribunal de district de Bülach a condamné ces trois cadres à un an de prison avec sursis pour homicide par négligence. Un responsable des travaux de maintenance effectués le soir de l'accident a été condamné à une amende avec sursis de 13500 francs suisses.
Un an avant l'accident, un incident similaire se produisit au-dessus du Japon. Deux avions de lignes Japonais (dont un de Japan Air) se frôlèrent, alors qu'ils avaient reçu du TCAS et du contrôle aérien des instructions contraires. La catastrophe fut évitée car les deux pilotes prirent la même décision d'ignorer l'instruction du contrôleur et de suivre celle du TCAS. Ils passèrent à 100 mètres l'un de l'autre, au prix de très brusques manœuvres et d'une centaine de passagers blessés au cours de celles-ci. Les autorités de l'aviation civile japonaises réclamèrent auprès de l'OACI, l'Organisation de l'aviation civile internationale, que des mesures soient prises pour éviter que des incidents similaires se produisent, mais leurs demandes restèrent alors sans réponse. Depuis la collision d'Überlingen, l'OACI demande aux pilotes de suivre les instructions de leur TCAS, le système anti-collision embarqué, quand celui-ci déclenche une alerte d'évitement.
Peter Nielsen est mort poignardé devant sa maison à Zurich le 24 février 2004. Son assassin, Vitaly Kaloyev, fut arrêté quelques jours plus tard. Kaloyev avait perdu sa femme et ses deux enfants dans la catastrophe, et souffrait d'une dépression nerveuse. Arrivé très vite sur les lieux du crash, il avait participé à la recherche des corps et avait retrouvé celui de l'une de ses filles, intact. Un an après le drame, il avait demandé à la direction de skyguide de rencontrer le contrôleur responsable de la catastrophe. Sa demande était restée sans réponse. Après le meurtre, il fut retrouvé dans sa chambre d'hôtel, en état apparent de choc. Il prétendit ne plus se souvenir de son acte, et fut examiné dans un hôpital psychiatrique. Il a été condamné en octobre 2005 à 8 ans de prison par un tribunal suisse. Ce jugement a été revu et porté à 5 ans de prison avec sursis et 3 mois de détention ferme. Ceci a ouvert la voie à une libération de Kaloyev, ce dernier ayant déjà effectué deux tiers de sa peine. Vitaly Kaloyev a été libéré le 12 novembre 2007.
Ironie du sort, Nielsen n'était pas le seul responsable de la collision, mais Kaloyev n'avait pas conscience de la conjonction d'évènements qui conduisit à l'accident. Les experts conclurent même qu'au vu des faits, Nielsen n'aurait pas pu être sanctionné. Il avait arrêté de travailler suite à son inculpation. A skyguide, ses anciens collègues laissent encore une rose blanche dans un vase sur son poste.
Le 19 mai 2004, le bureau enquêtes-accidents de l'aviation civile allemande (BFU) publia les résultats de son enquête. Skyguide, qui tenait initialement l'équipage russe pour responsable de l'accident, accepta sa part de responsabilité et paya une compensation à certaines des familles russes touchées par la catastrophe.