diff --git a/cmd/podman/images/build.go b/cmd/podman/images/build.go
index 3aeba6fb03..a1a28b809a 100644
--- a/cmd/podman/images/build.go
+++ b/cmd/podman/images/build.go
@@ -67,6 +67,18 @@ var (
   podman image build --layers --force-rm --tag imageName .`,
 	}
 
+	buildxBuildCmd = &cobra.Command{
+		Args:              buildCmd.Args,
+		Use:               buildCmd.Use,
+		Short:             buildCmd.Short,
+		Long:              buildCmd.Long,
+		RunE:              buildCmd.RunE,
+		ValidArgsFunction: buildCmd.ValidArgsFunction,
+		Example: `podman buildx build .
+  podman buildx build --creds=username:password -t imageName -f Containerfile.simple .
+  podman buildx build --layers --force-rm --tag imageName .`,
+	}
+
 	buildOpts = buildFlagsWrapper{}
 )
 
@@ -91,11 +103,24 @@ func init() {
 		Parent:  imageCmd,
 	})
 	buildFlags(imageBuildCmd)
+	registry.Commands = append(registry.Commands, registry.CliCommand{
+		Command: buildxBuildCmd,
+		Parent:  buildxCmd,
+	})
+	buildFlags(buildxBuildCmd)
 }
 
 func buildFlags(cmd *cobra.Command) {
 	flags := cmd.Flags()
 
+	// buildx build --load ignored, but added for compliance
+	flags.Bool("load", false, "buildx --load")
+	_ = flags.MarkHidden("load")
+
+	// buildx build --progress ignored, but added for compliance
+	flags.String("progress", "auto", "buildx --progress")
+	_ = flags.MarkHidden("progress")
+
 	// Podman flags
 	flags.BoolVarP(&buildOpts.SquashAll, "squash-all", "", false, "Squash all layers into a single layer")
 
diff --git a/cmd/podman/images/buildx.go b/cmd/podman/images/buildx.go
new file mode 100644
index 0000000000..5c8e5aaa0c
--- /dev/null
+++ b/cmd/podman/images/buildx.go
@@ -0,0 +1,29 @@
+package images
+
+import (
+	"github.com/containers/podman/v3/cmd/podman/registry"
+	"github.com/containers/podman/v3/cmd/podman/validate"
+	"github.com/spf13/cobra"
+)
+
+var (
+	// Command: podman _buildx_
+	// This is a hidden command, which was added to make converting
+	// from Docker to Podman easier.
+	// For now podman buildx build just calls into podman build
+	// If we are adding new buildx features, we will add them by default
+	// to podman build.
+	buildxCmd = &cobra.Command{
+		Use:    "buildx",
+		Short:  "Build images",
+		Long:   "Build images",
+		RunE:   validate.SubCommandExists,
+		Hidden: true,
+	}
+)
+
+func init() {
+	registry.Commands = append(registry.Commands, registry.CliCommand{
+		Command: buildxCmd,
+	})
+}
diff --git a/cmd/podman/shell_completion_test.go b/cmd/podman/shell_completion_test.go
index 9bd821d8db..792beeb19c 100644
--- a/cmd/podman/shell_completion_test.go
+++ b/cmd/podman/shell_completion_test.go
@@ -33,7 +33,9 @@ func TestShellCompletionFunctions(t *testing.T) {
 func checkCommand(t *testing.T, cmd *cobra.Command) {
 	if cmd.HasSubCommands() {
 		for _, childCmd := range cmd.Commands() {
-			checkCommand(t, childCmd)
+			if !childCmd.Hidden {
+				checkCommand(t, childCmd)
+			}
 		}
 
 		// if not check if completion for that command is provided
diff --git a/docs/source/markdown/podman-build.1.md b/docs/source/markdown/podman-build.1.md
index c65fbccb9f..a2ed35f89e 100644
--- a/docs/source/markdown/podman-build.1.md
+++ b/docs/source/markdown/podman-build.1.md
@@ -43,6 +43,8 @@ containers can be left in container storage. Use the `podman ps --all --storage`
 command to see these containers. External containers can be removed with the
 `podman rm --storage` command.
 
+`podman buildx build` command is an alias of `podman build`.  Not all `buildx build` features are available in Podman. The `buildx build` option is provided for scripting compatibility.
+
 ## OPTIONS
 
 #### **--add-host**=*host*
diff --git a/test/system/070-build.bats b/test/system/070-build.bats
index 26113e45c7..0f58b27847 100644
--- a/test/system/070-build.bats
+++ b/test/system/070-build.bats
@@ -29,6 +29,27 @@ EOF
     run_podman rmi -f build_test
 }
 
+@test "podman buildx - basic test" {
+    rand_filename=$(random_string 20)
+    rand_content=$(random_string 50)
+
+    tmpdir=$PODMAN_TMPDIR/build-test
+    mkdir -p $tmpdir
+    dockerfile=$tmpdir/Dockerfile
+    cat >$dockerfile <<EOF
+FROM $IMAGE
+RUN echo $rand_content > /$rand_filename
+EOF
+
+    run_podman buildx build --load -t build_test --format=docker $tmpdir
+    is "$output" ".*COMMIT" "COMMIT seen in log"
+
+    run_podman run --rm build_test cat /$rand_filename
+    is "$output"   "$rand_content"   "reading generated file in image"
+
+    run_podman rmi -f build_test
+}
+
 @test "podman build test -f -" {
     rand_filename=$(random_string 20)
     rand_content=$(random_string 50)