Faits: A. Le 16 août 1986, X._, né le 15 avril 1945, directeur commercial dans une entreprise active dans le secteur de l'horlogerie de luxe, et son fils Y._, né le 20 mai 1973, circulaient en motocyclette sur une route nationale en France. Le conducteur aviné d'une voiture automobile, assuré auprès de A._ Compagnie générale d'assurances SA, aujourd'hui Z._ SA, s'est engagé devant eux sur la chaussée, provoquant un brusque freinage de la motocyclette. X._ et Y._ ont fait une chute, le premier allant heurter la voiture. La Cour d'appel de Besançon a imputé la responsabilité pénale de l'accident exclusivement au conducteur de la voiture. X._ a subi, outre diverses fractures, un arrachement du plexus brachial gauche. Durant les dix ans qui ont suivi l'accident, il a été soumis à de nombreuses interventions chirurgicales. Il subsiste une paralyse partielle du bras et de la main gauche ainsi que d'importantes douleurs permanentes. Après l'accident, X._ a travaillé à temps partiel. A partir du 1er novembre 1995, il est devenu salarié pour une part, en qualité de directeur et administrateur, et consultant indépendant pour une autre part. Y._, âgé de treize ans au moment de l'accident, a subi des lésions du plexus brachial droit. Malgré plusieurs interventions chirurgicales, la fonction du membre supérieur droit reste limitée. Après avoir obtenu sa maturité, Y._ est devenu opticien. B. Le 22 septembre 1998, X._ et Y._ ont ouvert action contre Z._ SA devant la Cour civile du Tribunal cantonal vaudois. X._ a conclu au paiement de la somme de 5'256'269 fr. avec intérêt (dommage temporaire: 1'625'732 fr.; dommage futur capitalisé: 2'742'785 fr.; dommage ménager temporaire: 220'000 fr.; dommage ménager futur: 377'337 fr.; tort moral: 250'000 fr.; frais d'avocat avant ouverture d'action: 40'000 fr.; frais de notification du commandement de payer: 415 fr.). Pour sa part, Y._ a réclamé le versement d'un montant s'élevant en dernier lieu à 2'982'415 fr. plus intérêt (perte de gain future: 2'782'000 fr.; tort moral: 200'000 fr.; frais de notification du commandement de payer: 415 fr.). Par jugement du 15 septembre 2003, la Cour civile a partiellement admis la demande. Elle a condamné Z._ SA à payer à X._ les montants de 308'383 fr. 70 avec intérêt à 5 % l'an dès le 29 août 2003 (perte de gain future), 38'680 fr. avec intérêt à 5 % l'an dès le 16 août 1986 (tort moral) et 7'125 fr. avec intérêt à 5 % l'an dès le 15 octobre 1998 (frais d'avocat). Elle l'a en outre condamnée à verser à Y._ les montants de 76'320 fr. avec intérêt à 5 % l'an dès le 29 août 2003 (perte de gain future) et 10'000 fr. avec intérêt à 5 % l'an dès le 16 août 1986 (tort moral). Contre le jugement du 15 septembre 2003, X._ et Y._ ont recouru en nullité auprès de la Chambre des recours du Tribunal cantonal, principalement pour appréciation arbitraire des preuves. Ils ont en outre déposé un recours en réforme au Tribunal fédéral, dans lequel ils concluaient au paiement de respectivement 5'114'791 fr. et 2'389'600 fr. Par arrêt du 25 mai 2005, la Chambre des recours a admis le recours en nullité, annulé le jugement du 15 septembre 2003 et renvoyé la cause à la Cour civile pour nouvelle instruction dans le sens des considérants et nouveau jugement. En bref, elle a jugé que la Cour civile avait arbitrairement retenu qu'une estimation du dommage relatif à la perte de gain de X._ pour les années 1996 à 1998 n'était pas possible et rejeté les autres moyens de nullité recevables. Suite à l'annulation du jugement du 15 septembre 2003, le recours en réforme au Tribunal fédéral a été déclaré sans objet par décision de la Cour de céans du 21 septembre 2005. La Cour civile du Tribunal cantonal a rendu son nouveau jugement le 20 mars 2007, allouant à X._, par rapport au premier, un montant supplémentaire de 276'101 fr. 90 avec intérêt à 5 % l'an dès le 1er novembre 1997, à titre de réparation de la perte de gain pour la période du 1er septembre 1996 au 31 décembre 1998. Pour le reste, elle a considéré qu'elle n'avait pas à se prononcer de nouveau sur les points du premier jugement qui n'avaient pas été mis en cause dans l'arrêt de la Chambre des recours et qu'elle était uniquement habilitée à revoir la partie de la décision entachée d'arbitraire. Dans ce sens, elle a donc confirmé les montants alloués à X._ et Y._ dans le jugement du 15 septembre 2003 par simple renvoi à celui-ci. C. X._ (le recourant 1) et Y._ (le recourant 2) interjettent un recours en matière civile au Tribunal fédéral. Ils concluent principalement à ce que les montants déjà alloués soient augmentés de respectivement 3'825'883 fr. et 40'000 fr. plus intérêt, subsidiairement à l'annulation du jugement du 20 mars 2007, avec suite de dépens des instances cantonale et fédérale. Z._ SA (l'intimée) propose le rejet du recours, sous suite de frais et dépens. 