diff --git a/salt/modules/pip.py b/salt/modules/pip.py
index 64b2f7f9bb..7d0616502b 100644
--- a/salt/modules/pip.py
+++ b/salt/modules/pip.py
@@ -79,6 +79,7 @@ from __future__ import absolute_import, print_function, unicode_literals
 # Import python libs
 import logging
 import os
+
 try:
     import pkg_resources
 except ImportError:
@@ -441,6 +442,7 @@ def install(pkgs=None,  # pylint: disable=R0912,R0913,R0914
             no_cache_dir=False,
             cache_dir=None,
             no_binary=None,
+            extra_args=None,
             **kwargs):
     '''
     Install packages with pip
@@ -612,6 +614,24 @@ def install(pkgs=None,  # pylint: disable=R0912,R0913,R0914
     no_cache_dir
         Disable the cache.
 
+    extra_args
+        pip keyword and positional arguments not yet implemented in salt
+
+        .. code-block:: yaml
+
+            salt '*' pip.install pandas extra_args="[{'--latest-pip-kwarg':'param'}, '--latest-pip-arg']"
+
+        .. warning::
+
+            If unsupported options are passed here that are not supported in a
+            minion's version of pip, a `No such option error` will be thrown.
+
+    Will be translated into the following pip command:
+
+    .. code-block:: bash
+
+        pip install pandas --latest-pip-kwarg param --latest-pip-arg
+
     CLI Example:
 
     .. code-block:: bash
@@ -895,6 +915,24 @@ def install(pkgs=None,  # pylint: disable=R0912,R0913,R0914
     if trusted_host:
         cmd.extend(['--trusted-host', trusted_host])
 
+    if extra_args:
+        # These are arguments from the latest version of pip that
+        # have not yet been implemented in salt
+        for arg in extra_args:
+            # It is a keyword argument
+            if isinstance(arg, dict):
+                # There will only ever be one item in this dictionary
+                key, val = arg.popitem()
+                # Don't allow any recursion into keyword arg definitions
+                # Don't allow multiple definitions of a keyword
+                if isinstance(val, (dict, list)):
+                    raise TypeError("Too many levels in: {}".format(key))
+                # This is a a normal one-to-one keyword argument
+                cmd.extend([key, val])
+            # It is a positional argument, append it to the list
+            else:
+                cmd.append(arg)
+
     cmd_kwargs = dict(saltenv=saltenv, use_vt=use_vt, runas=user)
 
     if kwargs:
diff --git a/salt/states/pip_state.py b/salt/states/pip_state.py
index edc79762f3..6d80e4a9d5 100644
--- a/salt/states/pip_state.py
+++ b/salt/states/pip_state.py
@@ -21,8 +21,10 @@ requisite to a pkg.installed state for the package which provides pip
 
 # Import python libs
 from __future__ import absolute_import, print_function, unicode_literals
-import re
+
 import logging
+import re
+
 try:
     import pkg_resources
     HAS_PKG_RESOURCES = True
@@ -341,6 +343,7 @@ def installed(name,
               no_cache_dir=False,
               cache_dir=None,
               no_binary=None,
+              extra_args=None,
               **kwargs):
     '''
     Make sure the package is installed
@@ -602,6 +605,23 @@ def installed(name,
                 - reload_modules: True
                 - exists_action: i
 
+    extra_args
+        pip keyword and positional arguments not yet implemented in salt
+
+        .. code-block:: yaml
+
+            pandas:
+              pip.installed:
+                - name: pandas
+                - extra_args:
+                  - --latest-pip-kwarg: param
+                  - --latest-pip-arg
+
+        .. warning::
+
+            If unsupported options are passed here that are not supported in a
+            minion's version of pip, a `No such option error` will be thrown.
+
 
     .. _`virtualenv`: http://www.virtualenv.org/en/latest/
     '''
@@ -838,6 +858,7 @@ def installed(name,
         use_vt=use_vt,
         trusted_host=trusted_host,
         no_cache_dir=no_cache_dir,
+        extra_args=extra_args,
         **kwargs
     )
 
