diff --git a/lib/modules/manager/gradle/__fixtures__/1/libs.versions.toml b/lib/modules/manager/gradle/__fixtures__/1/libs.versions.toml
index fccce61156ba5a6d9d6ad7c7f36842cb3cad0965..8aac96c8ed1b95a9e980cc31d73a8606407cfd66 100644
--- a/lib/modules/manager/gradle/__fixtures__/1/libs.versions.toml
+++ b/lib/modules/manager/gradle/__fixtures__/1/libs.versions.toml
@@ -17,5 +17,5 @@ kotest = [ "kotest-runner-junit5", "kotest-assertions-core-jvm" ]
 
 [plugins]
 detekt = { id = "io.gitlab.arturbosch.detekt", version.ref = "detekt" }
-publish-on-central = { id = "org.danilopianini.publish-on-central", version.ref = "publish-on-central" }
+publish-on-central = { id = "org.danilopianini.publish-on-central", version.ref = "publish.on.central" }
 grgit = { id = "org.ajoberstar.grgit", version.unknown = "this will fail" }
diff --git a/lib/modules/manager/gradle/__fixtures__/3/libs.versions.toml b/lib/modules/manager/gradle/__fixtures__/3/libs.versions.toml
index bddeb5947dfe1d836fe2beb19dab64e59e85aeaa..7188d1a6c6b443901fa7708e9154c60c197d7b52 100644
--- a/lib/modules/manager/gradle/__fixtures__/3/libs.versions.toml
+++ b/lib/modules/manager/gradle/__fixtures__/3/libs.versions.toml
@@ -7,4 +7,4 @@ junit = "1.4.9"
 
 [libraries]
 junit-legacy = { module = "junit:junit", version.ref = "junit" }
-mocha-junit = { module = "mocha-junit:mocha-junit", version.ref = "mocha-junit-reporter" }
+mocha-junit = { module = "mocha-junit:mocha-junit", version.ref = "mocha.junit.reporter" }
diff --git a/lib/modules/manager/gradle/extract/catalog.ts b/lib/modules/manager/gradle/extract/catalog.ts
index 49b21ccceea7bc1f545a21f4eda01013089492b6..16483dcb895d3015362a51390263c51c8a3d2942 100644
--- a/lib/modules/manager/gradle/extract/catalog.ts
+++ b/lib/modules/manager/gradle/extract/catalog.ts
@@ -55,6 +55,10 @@ function isVersionPointer(
   return hasKey('ref', obj);
 }
 
+function normalizeVersionPointer(versionPointer: string): string {
+  return versionPointer.replace(regEx(/[._]/g), '-');
+}
+
 interface VersionExtract {
   currentValue?: string;
   fileReplacePosition?: number;
@@ -79,12 +83,13 @@ function extractVersion({
   versionSubContent: string;
 }): VersionExtract {
   if (isVersionPointer(version)) {
+    const parsedVersion = normalizeVersionPointer(version.ref);
     // everything else is ignored
     return extractLiteralVersion({
-      version: versions[version.ref],
+      version: versions[parsedVersion],
       depStartIndex: versionStartIndex,
       depSubContent: versionSubContent,
-      sectionKey: version.ref,
+      sectionKey: parsedVersion,
     });
   } else {
     return extractLiteralVersion({
@@ -205,7 +210,7 @@ function extractDependency({
     };
   }
   const versionRef = isVersionPointer(descriptor.version)
-    ? descriptor.version.ref
+    ? normalizeVersionPointer(descriptor.version.ref)
     : null;
   if (isArtifactDescriptor(descriptor)) {
     const { group, name } = descriptor;
@@ -284,7 +289,7 @@ export function parseCatalog(
       dependency.skipReason = skipReason;
     }
     if (isVersionPointer(version) && dependency.commitMessageTopic) {
-      dependency.groupName = version.ref;
+      dependency.groupName = normalizeVersionPointer(version.ref);
       delete dependency.commitMessageTopic;
     }