diff --git a/viper.go b/viper.go
index a56472f..2037881 100644
--- a/viper.go
+++ b/viper.go
@@ -23,6 +23,7 @@
 	"github.com/mitchellh/mapstructure"
 	"github.com/spf13/cast"
 	jww "github.com/spf13/jwalterweatherman"
+	"github.com/spf13/pflag"
 	"gopkg.in/yaml.v1"
 )
 
@@ -40,6 +41,7 @@
 var config map[string]interface{} = make(map[string]interface{})
 var override map[string]interface{} = make(map[string]interface{})
 var defaults map[string]interface{} = make(map[string]interface{})
+var pflags map[string]*pflag.Flag = make(map[string]*pflag.Flag)
 var aliases map[string]string = make(map[string]string)
 
 func SetConfigFile(in string) {
@@ -116,6 +118,15 @@
 	return
 }
 
+func BindPFlag(key string, flag *pflag.Flag) (err error) {
+	if flag == nil {
+		return fmt.Errorf("flag for %q is nil", key)
+	}
+	pflags[key] = flag
+	SetDefault(key, flag.Value.String())
+	return nil
+}
+
 func find(key string) interface{} {
 	var val interface{}
 	var exists bool
@@ -123,6 +134,15 @@
 	// if the requested key is an alias, then return the proper key
 	key = realKey(key)
 
+	// PFlag Override first
+	flag, exists := pflags[key]
+	if exists {
+		if flag.Changed {
+			jww.TRACE.Println(key, "found in override (via pflag):", val)
+			return flag.Value.String()
+		}
+	}
+
 	val, exists = override[key]
 	if exists {
 		jww.TRACE.Println(key, "found in override:", val)
