diff --git a/build/gen.py b/build/gen.py
index 34f349c..e7a86ec 100755
--- a/build/gen.py
+++ b/build/gen.py
@@ -624,6 +624,7 @@
         'src/gn/builder_unittest.cc',
         'src/gn/c_include_iterator_unittest.cc',
         'src/gn/command_format_unittest.cc',
+        'src/gn/commands_unittest.cc',
         'src/gn/compile_commands_writer_unittest.cc',
         'src/gn/config_unittest.cc',
         'src/gn/config_values_extractors_unittest.cc',
diff --git a/src/gn/commands.cc b/src/gn/commands.cc
index 8f1a1a7..97d2629 100644
--- a/src/gn/commands.cc
+++ b/src/gn/commands.cc
@@ -538,12 +538,16 @@
                                 const std::vector<LabelPattern>& filter,
                                 std::vector<const Target*>* output) {
   for (auto* target : input) {
+    bool match = false;
     for (const auto& pattern : filter) {
-      if (!pattern.Matches(target->label())) {
-        output->push_back(target);
+      if (pattern.Matches(target->label())) {
+        match = true;
         break;
       }
     }
+    if (!match) {
+      output->push_back(target);
+    }
   }
 }
 
diff --git a/src/gn/commands_unittest.cc b/src/gn/commands_unittest.cc
new file mode 100644
index 0000000..6d861cd
--- /dev/null
+++ b/src/gn/commands_unittest.cc
@@ -0,0 +1,35 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include <stddef.h>
+
+#include "gn/commands.h"
+#include "gn/label_pattern.h"
+#include "gn/target.h"
+#include "gn/test_with_scope.h"
+#include "util/test/test.h"
+
+TEST(Commands, FilterOutMatch) {
+  TestWithScope setup;
+  SourceDir current_dir("//");
+
+  Target target_afoo(setup.settings(), Label(SourceDir("//a/"), "foo"));
+  Target target_cbar(setup.settings(), Label(SourceDir("//c/"), "bar"));
+  std::vector<const Target*> targets{&target_afoo, &target_cbar};
+
+  Err err;
+  LabelPattern pattern_a = LabelPattern::GetPattern(
+      current_dir, std::string_view(), Value(nullptr, "//a:*"), &err);
+  EXPECT_FALSE(err.has_error());
+  LabelPattern pattern_ef = LabelPattern::GetPattern(
+      current_dir, std::string_view(), Value(nullptr, "//e:f"), &err);
+  EXPECT_FALSE(err.has_error());
+  std::vector<LabelPattern> label_patterns{pattern_a, pattern_ef};
+
+  std::vector<const Target*> output;
+  commands::FilterOutTargetsByPatterns(targets, label_patterns, &output);
+
+  EXPECT_EQ(1, output.size());
+  EXPECT_EQ(&target_cbar, output[0]);
+}
