diff --git a/lib/config/definitions.js b/lib/config/definitions.js
index d43372a112b7ea14bbe899644e0694504fc0c03f..e686c3614418af5db4d8a7425509e4736a3a48e6 100644
--- a/lib/config/definitions.js
+++ b/lib/config/definitions.js
@@ -192,6 +192,7 @@ const options = [
     description: 'Rules for matching package names',
     type: 'list',
     stage: 'depType',
+    mergeable: true,
     cli: false,
     env: false,
   },
diff --git a/lib/config/index.js b/lib/config/index.js
index a165b3b440c05d814d72b3ec985913a819ddac07..864e574d3ac6ff2122a31630e24e0cb7065a73bb 100644
--- a/lib/config/index.js
+++ b/lib/config/index.js
@@ -118,10 +118,17 @@ function mergeChildConfig(parentConfig, childConfig) {
   for (const option of definitions.getOptions()) {
     if (option.mergeable && childConfig[option.name]) {
       logger.debug(`mergeable option: ${option.name}`);
-      config[option.name] = {
-        ...parentConfig[option.name],
-        ...childConfig[option.name],
-      };
+      if (option.type === 'list') {
+        // Place parent values *after* child
+        config[option.name] = config[option.name].concat(
+          parentConfig[option.name]
+        );
+      } else {
+        config[option.name] = {
+          ...parentConfig[option.name],
+          ...childConfig[option.name],
+        };
+      }
       logger.debug({ option: config[option.name] }, `config.${option.name}`);
     }
   }
diff --git a/test/config/index.spec.js b/test/config/index.spec.js
index 315b08575bf40e563544ccc29b6e7d0b1f4e1d1f..f5976043699f8c31fc516b8340eb1d48ccfb6b42 100644
--- a/test/config/index.spec.js
+++ b/test/config/index.spec.js
@@ -173,5 +173,22 @@ describe('config/index', () => {
       const config = configParser.mergeChildConfig(parentConfig, childConfig);
       expect(config.depTypes).toMatchSnapshot();
     });
+    it('merges packageRules', () => {
+      const parentConfig = { ...defaultConfig };
+      Object.assign(parentConfig, {
+        packageRules: [{ a: 1 }, { a: 2 }],
+      });
+      const childConfig = {
+        packageRules: [{ a: 3 }, { a: 4 }],
+      };
+      const configParser = require('../../lib/config/index.js');
+      const config = configParser.mergeChildConfig(parentConfig, childConfig);
+      expect(config.packageRules.map(rule => rule.a)).toMatchObject([
+        3,
+        4,
+        1,
+        2,
+      ]);
+    });
   });
 });