1999年彼は4005ヤード、24タッチダウン、13インターセプトの成績でQBレイティングは90.0となりプロボウルに初めて選ばれた。パス成功数316回はチーム記録、4005ヤードは歴代2位の記録であった。チームはプレーオフ出場を果たしデトロイト・ライオンズを初戦で破り翌週タンパベイ・バッカニアーズに1点差で敗れた。2000年にはタッチダウン数よりインターセプト数が多くなりチーム成績は8勝8敗、翌シーズンからの先発QBにはジェフ・ジョージが指名され彼はタンパベイ・バッカニアーズにトレードされた。翌2001年ジョージはNFL最低の成績で開幕から連敗したところでトニー・バンクスにポジションを奪われた。
1992年のNFLドラフト9巡目でミネソタ・バイキングスに指名されて入団した。1996年にエースQBのウォーレン・ムーンが負傷欠場するまではほとんどプレーする機会は与えられずNFLヨーロッパなどに派遣された。同年先発出場8試合を含む12試合に出場し週間MVPに2度選ばれる活躍を見せてNFC3位のQBレイティング89.4の数字を残した。1997年にはエースQBとなりNFC4位のレイティング、20タッチダウン、3036ヤードを投げたが13試合目でシーズン絶望となる怪我を首に受けた。カロライナ・パンサーズ戦では自身の投げたパスが相手ディフェンスにはたかれ、それを自らキャッチしタッチダウンに結びつけるというNFL史上初の珍しいプレーを達成した。1998年も開幕からエースQBとして先発出場したが第2週に足を負傷し第10週に復帰するまで欠場した。しかしその試合の第3Qに親指を負傷し残り試合での出場は限定的なものとなった。この年残りの試合で先発出場したのがランドール・カニンガムでカニンガムはQBレイティングで106.0という驚異的な数字でこの年NFLトップの成績を残しチームは15勝1敗でシーズンを終えた。この結果、デニス・グリーンヘッドコーチの決断により彼はワシントン・レッドスキンズにドラフト1巡目指名権、将来の2巡、3巡指名権と引換えにトレードされた。しかしカニンガムは翌1999年開幕から2勝4敗の成績となり控えQBのジェフ・ジョージが残り試合を8勝2敗で終えバイキングスはかろうじてプレーオフに出場した。しかしそのジョージもシーズン終了後、ワシントン・レッドスキンズからの好契約のオファーを受けてバイキングスを退団、2000年にはダンテ・カルペッパーが先発QBとなった。バイキングスでは46試合に先発し、28勝をあげた。
先発QBとしてNFLの4チームで72勝53敗の成績を残し1995年から2007年までは13年間連続でパス成功率は60%を越えた（これはNFL記録で2位はペイトン・マニングが2009年まで継続している11年間。）。3000ヤード以上獲得したシーズンは5回を数えた。
例として次のC言語のコードを見てみよう。int a = 0;if (a && myfunc(b)) {    do_something();}この例では、短絡評価によって myfunc(b) は決して呼び出されない。なぜなら a は false と評価されるからである。この性質を利用して2種類のプログラミング技法が得られる。1つは、後半の部分式に時間のかかる処理を置き、最初の部分式でその処理が必要か否かのチェックをするようにすれば、無駄な関数呼び出しなどを減らすことができる。2つめとして、後半の部分式が実行時エラーを起こすかどうかのチェックを前半で行うというコーディングが考えられる。例えば、次のC言語コードは、短絡評価を利用してヌルポインタの参照を防いでいる。int is_three_chars_long(const char *p) {    return (p != NULL) && (strlen(p) == 3);}短絡評価を利用することで、コードブロックの入れ子がいたずらに深くなることを防ぐこともできる。このような利点はあるが、短絡評価であることを忘れていると問題が発生することがある。例えば、次のコードを見てみよう。if (expressionA && myfunc(b)) {    do_something();}ここで、myfunc(b) は副作用のある式だとする。myfunc(b) が常に実行されることを期待していると、expressionA が false だった場合に実行されないことになり、問題が発生する。必ず実行されるようにするには、2つの式の評価順序を変えるか、あるいはまず両方の式を評価し、いったん結果を変数に格納してから論理演算するなどの対処が必要となる。if (myfunc(b) && expressionA) {    do_something();}Javaなどの言語では短絡評価する演算子と短絡評価しない演算子を用意して、このような問題に対処している。if文の条件式で使われる論理積や論理和の演算子は、if文の入れ子をコンパクトに表したものと見ることもできる。例えば、次の擬似コードでは短絡評価が行われるとする。if (CONDITION_A && CONDITION_B) {    TRUE_BRANCH} else {    FALSE_BRANCH}これは、論理積を展開することで次のようにも表せる。if (CONDITION_A) {    if (CONDITION_B) {        BOTH_TRUE    } else {        B_FALSE    }} else {    A_FALSE}ブール論理の性質から、A_FALSE と B_FALSE というコード部分が、最初の例では FALSE という部分に集約されていることに注意されたい。後者の例の方が条件によって異なる処理を記述できるため、必要に応じて使い分けることになる。両者が結局同じことをするコードであれば、共通式削除や定数伝播といったコンパイラ最適化によって、どちらも同じコードを生成する可能性がある。短絡評価を使ってコードの一部の条件付実行を実現することもできる。以下は Perl の例である。some_condition or die;    # some_condition が false なら実行を停止some_condition and die;   # some_condition が true なら実行を停止