diff --git a/src/applications/auth/factor/PhabricatorTOTPAuthFactor.php b/src/applications/auth/factor/PhabricatorTOTPAuthFactor.php
--- a/src/applications/auth/factor/PhabricatorTOTPAuthFactor.php
+++ b/src/applications/auth/factor/PhabricatorTOTPAuthFactor.php
@@ -128,6 +128,7 @@
         ->setLabel(pht('TOTP Code'))
         ->setName('totpcode')
         ->setValue($code)
+        ->setAutofocus(true)
         ->setError($e_code));
 
   }
diff --git a/src/view/form/control/PHUIFormNumberControl.php b/src/view/form/control/PHUIFormNumberControl.php
--- a/src/view/form/control/PHUIFormNumberControl.php
+++ b/src/view/form/control/PHUIFormNumberControl.php
@@ -3,6 +3,7 @@
 final class PHUIFormNumberControl extends AphrontFormControl {
 
   private $disableAutocomplete;
+  private $autofocus;
 
   public function setDisableAutocomplete($disable_autocomplete) {
     $this->disableAutocomplete = $disable_autocomplete;
@@ -13,6 +14,15 @@
     return $this->disableAutocomplete;
   }
 
+  public function setAutofocus($autofocus) {
+    $this->autofocus = $autofocus;
+    return $this;
+  }
+
+  public function getAutofocus() {
+    return $this->autofocus;
+  }
+
   protected function getCustomControlClass() {
     return 'phui-form-number';
   }
@@ -34,6 +44,7 @@
         'disabled' => $this->getDisabled() ? 'disabled' : null,
         'autocomplete' => $autocomplete,
         'id' => $this->getID(),
+        'autofocus' => ($this->getAutofocus() ? 'autofocus' : null),
       ));
   }